summaryrefslogtreecommitdiff
path: root/lib/CodeGen
diff options
context:
space:
mode:
Diffstat (limited to 'lib/CodeGen')
-rw-r--r--lib/CodeGen/AsmPrinter/CMakeLists.txt30
-rw-r--r--lib/CodeGen/AsmPrinter/LLVMBuild.txt22
-rw-r--r--lib/CodeGen/CMakeLists.txt178
-rw-r--r--lib/CodeGen/GlobalISel/CMakeLists.txt26
-rw-r--r--lib/CodeGen/GlobalISel/LLVMBuild.txt22
-rw-r--r--lib/CodeGen/LLVMBuild.txt25
-rw-r--r--lib/CodeGen/MIRParser/CMakeLists.txt8
-rw-r--r--lib/CodeGen/MIRParser/LLVMBuild.txt22
-rw-r--r--lib/CodeGen/README.txt199
-rw-r--r--lib/CodeGen/SelectionDAG/CMakeLists.txt30
-rw-r--r--lib/CodeGen/SelectionDAG/LLVMBuild.txt22
11 files changed, 0 insertions, 584 deletions
diff --git a/lib/CodeGen/AsmPrinter/CMakeLists.txt b/lib/CodeGen/AsmPrinter/CMakeLists.txt
deleted file mode 100644
index 3fb088ab6f0d..000000000000
--- a/lib/CodeGen/AsmPrinter/CMakeLists.txt
+++ /dev/null
@@ -1,30 +0,0 @@
-add_llvm_library(LLVMAsmPrinter
- AccelTable.cpp
- AddressPool.cpp
- ARMException.cpp
- AsmPrinter.cpp
- AsmPrinterDwarf.cpp
- AsmPrinterInlineAsm.cpp
- DbgEntityHistoryCalculator.cpp
- DebugHandlerBase.cpp
- DebugLocStream.cpp
- DIE.cpp
- DIEHash.cpp
- DwarfCFIException.cpp
- DwarfCompileUnit.cpp
- DwarfDebug.cpp
- DwarfExpression.cpp
- DwarfFile.cpp
- DwarfStringPool.cpp
- DwarfUnit.cpp
- EHStreamer.cpp
- ErlangGCPrinter.cpp
- OcamlGCPrinter.cpp
- WinCFGuard.cpp
- WinException.cpp
- CodeViewDebug.cpp
- WasmException.cpp
-
- DEPENDS
- intrinsics_gen
- )
diff --git a/lib/CodeGen/AsmPrinter/LLVMBuild.txt b/lib/CodeGen/AsmPrinter/LLVMBuild.txt
deleted file mode 100644
index bde8148d259b..000000000000
--- a/lib/CodeGen/AsmPrinter/LLVMBuild.txt
+++ /dev/null
@@ -1,22 +0,0 @@
-;===- ./lib/CodeGen/AsmPrinter/LLVMBuild.txt -------------------*- Conf -*--===;
-;
-; The LLVM Compiler Infrastructure
-;
-; This file is distributed under the University of Illinois Open Source
-; License. See LICENSE.TXT for details.
-;
-;===------------------------------------------------------------------------===;
-;
-; This is an LLVMBuild description file for the components in this subdirectory.
-;
-; For more information on the LLVMBuild system, please see:
-;
-; http://llvm.org/docs/LLVMBuild.html
-;
-;===------------------------------------------------------------------------===;
-
-[component_0]
-type = Library
-name = AsmPrinter
-parent = Libraries
-required_libraries = Analysis BinaryFormat CodeGen Core DebugInfoCodeView DebugInfoMSF MC MCParser Support Target
diff --git a/lib/CodeGen/CMakeLists.txt b/lib/CodeGen/CMakeLists.txt
deleted file mode 100644
index e76f9f8ed4e7..000000000000
--- a/lib/CodeGen/CMakeLists.txt
+++ /dev/null
@@ -1,178 +0,0 @@
-add_llvm_library(LLVMCodeGen
- AggressiveAntiDepBreaker.cpp
- AllocationOrder.cpp
- Analysis.cpp
- AtomicExpandPass.cpp
- BasicTargetTransformInfo.cpp
- BranchFolding.cpp
- BranchRelaxation.cpp
- BreakFalseDeps.cpp
- BuiltinGCs.cpp
- CalcSpillWeights.cpp
- CallingConvLower.cpp
- CFIInstrInserter.cpp
- CodeGen.cpp
- CodeGenPrepare.cpp
- CriticalAntiDepBreaker.cpp
- DeadMachineInstructionElim.cpp
- DetectDeadLanes.cpp
- DFAPacketizer.cpp
- DwarfEHPrepare.cpp
- EarlyIfConversion.cpp
- EdgeBundles.cpp
- ExecutionDomainFix.cpp
- ExpandISelPseudos.cpp
- ExpandMemCmp.cpp
- ExpandPostRAPseudos.cpp
- ExpandReductions.cpp
- FaultMaps.cpp
- FEntryInserter.cpp
- FuncletLayout.cpp
- GCMetadata.cpp
- GCMetadataPrinter.cpp
- GCRootLowering.cpp
- GCStrategy.cpp
- GlobalMerge.cpp
- IfConversion.cpp
- ImplicitNullChecks.cpp
- IndirectBrExpandPass.cpp
- InlineSpiller.cpp
- InterferenceCache.cpp
- InterleavedAccessPass.cpp
- InterleavedLoadCombinePass.cpp
- IntrinsicLowering.cpp
- LatencyPriorityQueue.cpp
- LazyMachineBlockFrequencyInfo.cpp
- LexicalScopes.cpp
- LiveDebugValues.cpp
- LiveDebugVariables.cpp
- LiveIntervals.cpp
- LiveInterval.cpp
- LiveIntervalUnion.cpp
- LivePhysRegs.cpp
- LiveRangeCalc.cpp
- LiveRangeEdit.cpp
- LiveRangeShrink.cpp
- LiveRegMatrix.cpp
- LiveRegUnits.cpp
- LiveStacks.cpp
- LiveVariables.cpp
- LLVMTargetMachine.cpp
- LocalStackSlotAllocation.cpp
- LoopTraversal.cpp
- LowLevelType.cpp
- LowerEmuTLS.cpp
- MachineBasicBlock.cpp
- MachineBlockFrequencyInfo.cpp
- MachineBlockPlacement.cpp
- MachineBranchProbabilityInfo.cpp
- MachineCombiner.cpp
- MachineCopyPropagation.cpp
- MachineCSE.cpp
- MachineDominanceFrontier.cpp
- MachineDominators.cpp
- MachineFrameInfo.cpp
- MachineFunction.cpp
- MachineFunctionPass.cpp
- MachineFunctionPrinterPass.cpp
- MachineInstrBundle.cpp
- MachineInstr.cpp
- MachineLICM.cpp
- MachineLoopInfo.cpp
- MachineModuleInfo.cpp
- MachineModuleInfoImpls.cpp
- MachineOperand.cpp
- MachineOptimizationRemarkEmitter.cpp
- MachineOutliner.cpp
- MachinePipeliner.cpp
- MachinePostDominators.cpp
- MachineRegionInfo.cpp
- MachineRegisterInfo.cpp
- MachineScheduler.cpp
- MachineSink.cpp
- MachineSSAUpdater.cpp
- MachineTraceMetrics.cpp
- MachineVerifier.cpp
- PatchableFunction.cpp
- MIRPrinter.cpp
- MIRPrintingPass.cpp
- MacroFusion.cpp
- OptimizePHIs.cpp
- ParallelCG.cpp
- PeepholeOptimizer.cpp
- PHIElimination.cpp
- PHIEliminationUtils.cpp
- PostRAHazardRecognizer.cpp
- PostRASchedulerList.cpp
- PreISelIntrinsicLowering.cpp
- ProcessImplicitDefs.cpp
- PrologEpilogInserter.cpp
- PseudoSourceValue.cpp
- ReachingDefAnalysis.cpp
- RegAllocBase.cpp
- RegAllocBasic.cpp
- RegAllocFast.cpp
- RegAllocGreedy.cpp
- RegAllocPBQP.cpp
- RegisterClassInfo.cpp
- RegisterCoalescer.cpp
- RegisterPressure.cpp
- RegisterScavenging.cpp
- RenameIndependentSubregs.cpp
- MIRCanonicalizerPass.cpp
- RegisterUsageInfo.cpp
- RegUsageInfoCollector.cpp
- RegUsageInfoPropagate.cpp
- ResetMachineFunctionPass.cpp
- SafeStack.cpp
- SafeStackColoring.cpp
- SafeStackLayout.cpp
- ScalarizeMaskedMemIntrin.cpp
- ScheduleDAG.cpp
- ScheduleDAGInstrs.cpp
- ScheduleDAGPrinter.cpp
- ScoreboardHazardRecognizer.cpp
- ShadowStackGCLowering.cpp
- ShrinkWrap.cpp
- SjLjEHPrepare.cpp
- SlotIndexes.cpp
- SpillPlacement.cpp
- SplitKit.cpp
- StackColoring.cpp
- StackMapLivenessAnalysis.cpp
- StackMaps.cpp
- StackProtector.cpp
- StackSlotColoring.cpp
- TailDuplication.cpp
- TailDuplicator.cpp
- TargetFrameLoweringImpl.cpp
- TargetInstrInfo.cpp
- TargetLoweringBase.cpp
- TargetLoweringObjectFileImpl.cpp
- TargetOptionsImpl.cpp
- TargetPassConfig.cpp
- TargetRegisterInfo.cpp
- TargetSchedule.cpp
- TargetSubtargetInfo.cpp
- TwoAddressInstructionPass.cpp
- UnreachableBlockElim.cpp
- ValueTypes.cpp
- VirtRegMap.cpp
- WasmEHPrepare.cpp
- WinEHPrepare.cpp
- XRayInstrumentation.cpp
-
- ADDITIONAL_HEADER_DIRS
- ${LLVM_MAIN_INCLUDE_DIR}/llvm/CodeGen
- ${LLVM_MAIN_INCLUDE_DIR}/llvm/CodeGen/PBQP
-
- LINK_LIBS ${LLVM_PTHREAD_LIB}
-
- DEPENDS
- intrinsics_gen
- )
-
-add_subdirectory(SelectionDAG)
-add_subdirectory(AsmPrinter)
-add_subdirectory(MIRParser)
-add_subdirectory(GlobalISel)
diff --git a/lib/CodeGen/GlobalISel/CMakeLists.txt b/lib/CodeGen/GlobalISel/CMakeLists.txt
deleted file mode 100644
index da2fd3b239a2..000000000000
--- a/lib/CodeGen/GlobalISel/CMakeLists.txt
+++ /dev/null
@@ -1,26 +0,0 @@
-add_llvm_library(LLVMGlobalISel
- CSEInfo.cpp
- CSEMIRBuilder.cpp
- CallLowering.cpp
- GlobalISel.cpp
- Combiner.cpp
- CombinerHelper.cpp
- GISelChangeObserver.cpp
- IRTranslator.cpp
- InstructionSelect.cpp
- InstructionSelector.cpp
- LegalityPredicates.cpp
- LegalizeMutations.cpp
- Legalizer.cpp
- LegalizerHelper.cpp
- LegalizerInfo.cpp
- Localizer.cpp
- MachineIRBuilder.cpp
- RegBankSelect.cpp
- RegisterBank.cpp
- RegisterBankInfo.cpp
- Utils.cpp
-
- DEPENDS
- intrinsics_gen
- )
diff --git a/lib/CodeGen/GlobalISel/LLVMBuild.txt b/lib/CodeGen/GlobalISel/LLVMBuild.txt
deleted file mode 100644
index a2daa3b222a6..000000000000
--- a/lib/CodeGen/GlobalISel/LLVMBuild.txt
+++ /dev/null
@@ -1,22 +0,0 @@
-;===- ./lib/CodeGen/GlobalISel/LLVMBuild.txt -----------------*- Conf -*--===;
-;
-; The LLVM Compiler Infrastructure
-;
-; This file is distributed under the University of Illinois Open Source
-; License. See LICENSE.TXT for details.
-;
-;===------------------------------------------------------------------------===;
-;
-; This is an LLVMBuild description file for the components in this subdirectory.
-;
-; For more information on the LLVMBuild system, please see:
-;
-; http://llvm.org/docs/LLVMBuild.html
-;
-;===------------------------------------------------------------------------===;
-
-[component_0]
-type = Library
-name = GlobalISel
-parent = CodeGen
-required_libraries = Analysis CodeGen Core MC Support Target TransformUtils
diff --git a/lib/CodeGen/LLVMBuild.txt b/lib/CodeGen/LLVMBuild.txt
deleted file mode 100644
index 07ea9dcaea7a..000000000000
--- a/lib/CodeGen/LLVMBuild.txt
+++ /dev/null
@@ -1,25 +0,0 @@
-;===- ./lib/CodeGen/LLVMBuild.txt ------------------------------*- Conf -*--===;
-;
-; The LLVM Compiler Infrastructure
-;
-; This file is distributed under the University of Illinois Open Source
-; License. See LICENSE.TXT for details.
-;
-;===------------------------------------------------------------------------===;
-;
-; This is an LLVMBuild description file for the components in this subdirectory.
-;
-; For more information on the LLVMBuild system, please see:
-;
-; http://llvm.org/docs/LLVMBuild.html
-;
-;===------------------------------------------------------------------------===;
-
-[common]
-subdirectories = AsmPrinter SelectionDAG MIRParser GlobalISel
-
-[component_0]
-type = Library
-name = CodeGen
-parent = Libraries
-required_libraries = Analysis BitReader BitWriter Core MC ProfileData Scalar Support Target TransformUtils
diff --git a/lib/CodeGen/MIRParser/CMakeLists.txt b/lib/CodeGen/MIRParser/CMakeLists.txt
deleted file mode 100644
index 2eb5b844d0e1..000000000000
--- a/lib/CodeGen/MIRParser/CMakeLists.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-add_llvm_library(LLVMMIRParser
- MILexer.cpp
- MIParser.cpp
- MIRParser.cpp
-
- DEPENDS
- intrinsics_gen
- )
diff --git a/lib/CodeGen/MIRParser/LLVMBuild.txt b/lib/CodeGen/MIRParser/LLVMBuild.txt
deleted file mode 100644
index 6269b005a985..000000000000
--- a/lib/CodeGen/MIRParser/LLVMBuild.txt
+++ /dev/null
@@ -1,22 +0,0 @@
-;===- ./lib/CodeGen/MIRParser/LLVMBuild.txt --------------------*- Conf -*--===;
-;
-; The LLVM Compiler Infrastructure
-;
-; This file is distributed under the University of Illinois Open Source
-; License. See LICENSE.TXT for details.
-;
-;===------------------------------------------------------------------------===;
-;
-; This is an LLVMBuild description file for the components in this subdirectory.
-;
-; For more information on the LLVMBuild system, please see:
-;
-; http://llvm.org/docs/LLVMBuild.html
-;
-;===------------------------------------------------------------------------===;
-
-[component_0]
-type = Library
-name = MIRParser
-parent = CodeGen
-required_libraries = AsmParser BinaryFormat CodeGen Core MC Support Target
diff --git a/lib/CodeGen/README.txt b/lib/CodeGen/README.txt
deleted file mode 100644
index d8958715c6b4..000000000000
--- a/lib/CodeGen/README.txt
+++ /dev/null
@@ -1,199 +0,0 @@
-//===---------------------------------------------------------------------===//
-
-Common register allocation / spilling problem:
-
- mul lr, r4, lr
- str lr, [sp, #+52]
- ldr lr, [r1, #+32]
- sxth r3, r3
- ldr r4, [sp, #+52]
- mla r4, r3, lr, r4
-
-can be:
-
- mul lr, r4, lr
- mov r4, lr
- str lr, [sp, #+52]
- ldr lr, [r1, #+32]
- sxth r3, r3
- mla r4, r3, lr, r4
-
-and then "merge" mul and mov:
-
- mul r4, r4, lr
- str r4, [sp, #+52]
- ldr lr, [r1, #+32]
- sxth r3, r3
- mla r4, r3, lr, r4
-
-It also increase the likelihood the store may become dead.
-
-//===---------------------------------------------------------------------===//
-
-bb27 ...
- ...
- %reg1037 = ADDri %reg1039, 1
- %reg1038 = ADDrs %reg1032, %reg1039, %noreg, 10
- Successors according to CFG: 0x8b03bf0 (#5)
-
-bb76 (0x8b03bf0, LLVM BB @0x8b032d0, ID#5):
- Predecessors according to CFG: 0x8b0c5f0 (#3) 0x8b0a7c0 (#4)
- %reg1039 = PHI %reg1070, mbb<bb76.outer,0x8b0c5f0>, %reg1037, mbb<bb27,0x8b0a7c0>
-
-Note ADDri is not a two-address instruction. However, its result %reg1037 is an
-operand of the PHI node in bb76 and its operand %reg1039 is the result of the
-PHI node. We should treat it as a two-address code and make sure the ADDri is
-scheduled after any node that reads %reg1039.
-
-//===---------------------------------------------------------------------===//
-
-Use local info (i.e. register scavenger) to assign it a free register to allow
-reuse:
- ldr r3, [sp, #+4]
- add r3, r3, #3
- ldr r2, [sp, #+8]
- add r2, r2, #2
- ldr r1, [sp, #+4] <==
- add r1, r1, #1
- ldr r0, [sp, #+4]
- add r0, r0, #2
-
-//===---------------------------------------------------------------------===//
-
-LLVM aggressively lift CSE out of loop. Sometimes this can be negative side-
-effects:
-
-R1 = X + 4
-R2 = X + 7
-R3 = X + 15
-
-loop:
-load [i + R1]
-...
-load [i + R2]
-...
-load [i + R3]
-
-Suppose there is high register pressure, R1, R2, R3, can be spilled. We need
-to implement proper re-materialization to handle this:
-
-R1 = X + 4
-R2 = X + 7
-R3 = X + 15
-
-loop:
-R1 = X + 4 @ re-materialized
-load [i + R1]
-...
-R2 = X + 7 @ re-materialized
-load [i + R2]
-...
-R3 = X + 15 @ re-materialized
-load [i + R3]
-
-Furthermore, with re-association, we can enable sharing:
-
-R1 = X + 4
-R2 = X + 7
-R3 = X + 15
-
-loop:
-T = i + X
-load [T + 4]
-...
-load [T + 7]
-...
-load [T + 15]
-//===---------------------------------------------------------------------===//
-
-It's not always a good idea to choose rematerialization over spilling. If all
-the load / store instructions would be folded then spilling is cheaper because
-it won't require new live intervals / registers. See 2003-05-31-LongShifts for
-an example.
-
-//===---------------------------------------------------------------------===//
-
-With a copying garbage collector, derived pointers must not be retained across
-collector safe points; the collector could move the objects and invalidate the
-derived pointer. This is bad enough in the first place, but safe points can
-crop up unpredictably. Consider:
-
- %array = load { i32, [0 x %obj] }** %array_addr
- %nth_el = getelementptr { i32, [0 x %obj] }* %array, i32 0, i32 %n
- %old = load %obj** %nth_el
- %z = div i64 %x, %y
- store %obj* %new, %obj** %nth_el
-
-If the i64 division is lowered to a libcall, then a safe point will (must)
-appear for the call site. If a collection occurs, %array and %nth_el no longer
-point into the correct object.
-
-The fix for this is to copy address calculations so that dependent pointers
-are never live across safe point boundaries. But the loads cannot be copied
-like this if there was an intervening store, so may be hard to get right.
-
-Only a concurrent mutator can trigger a collection at the libcall safe point.
-So single-threaded programs do not have this requirement, even with a copying
-collector. Still, LLVM optimizations would probably undo a front-end's careful
-work.
-
-//===---------------------------------------------------------------------===//
-
-The ocaml frametable structure supports liveness information. It would be good
-to support it.
-
-//===---------------------------------------------------------------------===//
-
-The FIXME in ComputeCommonTailLength in BranchFolding.cpp needs to be
-revisited. The check is there to work around a misuse of directives in inline
-assembly.
-
-//===---------------------------------------------------------------------===//
-
-It would be good to detect collector/target compatibility instead of silently
-doing the wrong thing.
-
-//===---------------------------------------------------------------------===//
-
-It would be really nice to be able to write patterns in .td files for copies,
-which would eliminate a bunch of explicit predicates on them (e.g. no side
-effects). Once this is in place, it would be even better to have tblgen
-synthesize the various copy insertion/inspection methods in TargetInstrInfo.
-
-//===---------------------------------------------------------------------===//
-
-Stack coloring improvements:
-
-1. Do proper LiveStacks analysis on all stack objects including those which are
- not spill slots.
-2. Reorder objects to fill in gaps between objects.
- e.g. 4, 1, <gap>, 4, 1, 1, 1, <gap>, 4 => 4, 1, 1, 1, 1, 4, 4
-
-//===---------------------------------------------------------------------===//
-
-The scheduler should be able to sort nearby instructions by their address. For
-example, in an expanded memset sequence it's not uncommon to see code like this:
-
- movl $0, 4(%rdi)
- movl $0, 8(%rdi)
- movl $0, 12(%rdi)
- movl $0, 0(%rdi)
-
-Each of the stores is independent, and the scheduler is currently making an
-arbitrary decision about the order.
-
-//===---------------------------------------------------------------------===//
-
-Another opportunitiy in this code is that the $0 could be moved to a register:
-
- movl $0, 4(%rdi)
- movl $0, 8(%rdi)
- movl $0, 12(%rdi)
- movl $0, 0(%rdi)
-
-This would save substantial code size, especially for longer sequences like
-this. It would be easy to have a rule telling isel to avoid matching MOV32mi
-if the immediate has more than some fixed number of uses. It's more involved
-to teach the register allocator how to do late folding to recover from
-excessive register pressure.
-
diff --git a/lib/CodeGen/SelectionDAG/CMakeLists.txt b/lib/CodeGen/SelectionDAG/CMakeLists.txt
deleted file mode 100644
index fd1e5e2cfc56..000000000000
--- a/lib/CodeGen/SelectionDAG/CMakeLists.txt
+++ /dev/null
@@ -1,30 +0,0 @@
-add_llvm_library(LLVMSelectionDAG
- DAGCombiner.cpp
- FastISel.cpp
- FunctionLoweringInfo.cpp
- InstrEmitter.cpp
- LegalizeDAG.cpp
- LegalizeFloatTypes.cpp
- LegalizeIntegerTypes.cpp
- LegalizeTypes.cpp
- LegalizeTypesGeneric.cpp
- LegalizeVectorOps.cpp
- LegalizeVectorTypes.cpp
- ResourcePriorityQueue.cpp
- ScheduleDAGFast.cpp
- ScheduleDAGRRList.cpp
- ScheduleDAGSDNodes.cpp
- ScheduleDAGVLIW.cpp
- SelectionDAGBuilder.cpp
- SelectionDAG.cpp
- SelectionDAGAddressAnalysis.cpp
- SelectionDAGDumper.cpp
- SelectionDAGISel.cpp
- SelectionDAGPrinter.cpp
- SelectionDAGTargetInfo.cpp
- StatepointLowering.cpp
- TargetLowering.cpp
-
- DEPENDS
- intrinsics_gen
- )
diff --git a/lib/CodeGen/SelectionDAG/LLVMBuild.txt b/lib/CodeGen/SelectionDAG/LLVMBuild.txt
deleted file mode 100644
index 81d2e000a2e8..000000000000
--- a/lib/CodeGen/SelectionDAG/LLVMBuild.txt
+++ /dev/null
@@ -1,22 +0,0 @@
-;===- ./lib/CodeGen/SelectionDAG/LLVMBuild.txt -----------------*- Conf -*--===;
-;
-; The LLVM Compiler Infrastructure
-;
-; This file is distributed under the University of Illinois Open Source
-; License. See LICENSE.TXT for details.
-;
-;===------------------------------------------------------------------------===;
-;
-; This is an LLVMBuild description file for the components in this subdirectory.
-;
-; For more information on the LLVMBuild system, please see:
-;
-; http://llvm.org/docs/LLVMBuild.html
-;
-;===------------------------------------------------------------------------===;
-
-[component_0]
-type = Library
-name = SelectionDAG
-parent = CodeGen
-required_libraries = Analysis CodeGen Core MC Support Target TransformUtils