[llvm-commits] llvm-config: explicit sourcefile deps for components

Török Edwin edwintorok at gmail.com
Thu Feb 4 01:28:38 PST 2010


On 02/04/2010 09:29 AM, Chris Lattner wrote:
> On Feb 2, 2010, at 1:07 PM, Török Edwin wrote:
>
>   
>> Hi,
>>
>> Attached is a patch I've been using for some time to output explicit
>> source file deps for a particular component.
>> It is a new flag for llvm-config.
>>
>> This info could also be used to see how to best split up existing llvm
>> libs, remove unneeded dependencies, etc.
>>     
>
> Ok, please commit.  Can you give an example of the input commands and the output you get?
>   

Here is an example on how to use it (make is needed since its not
autobuilt, it takes several seconds to create deps):
$ cd  tools/llvm-config
$ make llvm-config-perobjincl
$ ./llvm-config-perobjincl --libnames core
$ ./llvm-config-perobjincl --libnames codegen intepreter jit target
$ ./llvm-config-perobjincl --libnames x86codegen

Example outputs below, note that the output for x86codegen will include
files already output for core/support/etc.
But that is the intended purpose: give me ALL files that I need to
build+link to get that component working.
I postprocess the list using the script I sent in my previous email (for
example I want to built x86, ppc and arm codegens,
I want the common files, and then the specific files).

Output for the 2nd llvm-config-perobjincl command:

libLLVMTarget.a lib/Target/TargetSubtarget.o
lib/Target/TargetIntrinsicInfo.o lib/Target/TargetFrameInfo.o
lib/Target/TargetELFWriterInfo.o lib/Target/TargetAsmLexer.o
lib/Target/Target.o libLLVMJIT.a lib/Target/SubtargetFeature.o
lib/System/Disassembler.o lib/Support/Triple.o lib/MC/MCAsmInfo.o
lib/ExecutionEngine/JIT/TargetSelect.o
lib/ExecutionEngine/JIT/OProfileJITEventListener.o
lib/ExecutionEngine/JIT/JITMemoryManager.o
lib/ExecutionEngine/JIT/JITEmitter.o
lib/ExecutionEngine/JIT/JITDwarfEmitter.o
lib/ExecutionEngine/JIT/JITDebugRegisterer.o
lib/ExecutionEngine/JIT/JIT.o lib/ExecutionEngine/JIT/Intercept.o
libLLVMInterpreter.a lib/System/DynamicLibrary.o
lib/ExecutionEngine/Interpreter/Interpreter.o
lib/ExecutionEngine/Interpreter/ExternalFunctions.o
lib/ExecutionEngine/Interpreter/Execution.o
lib/ExecutionEngine/ExecutionEngine.o libLLVMCodeGen.a
lib/VMCore/ValueTypes.o lib/VMCore/ValueSymbolTable.o lib/VMCore/Value.o
lib/VMCore/Use.o lib/VMCore/TypeSymbolTable.o lib/VMCore/Type.o
lib/VMCore/PrintModulePass.o lib/VMCore/PassManager.o lib/VMCore/Pass.o
lib/VMCore/Module.o lib/VMCore/Metadata.o lib/VMCore/LeakDetector.o
lib/VMCore/LLVMContext.o lib/VMCore/IntrinsicInst.o
lib/VMCore/Instructions.o lib/VMCore/Instruction.o
lib/VMCore/InlineAsm.o lib/VMCore/IRBuilder.o lib/VMCore/Globals.o
lib/VMCore/Function.o lib/VMCore/Dominators.o lib/VMCore/Constants.o
lib/VMCore/ConstantFold.o lib/VMCore/BasicBlock.o
lib/VMCore/Attributes.o lib/VMCore/AsmWriter.o
lib/Transforms/Utils/UnifyFunctionExitNodes.o
lib/Transforms/Utils/SimplifyCFG.o lib/Transforms/Utils/SSAUpdater.o
lib/Transforms/Utils/PromoteMemoryToRegister.o
lib/Transforms/Utils/Mem2Reg.o lib/Transforms/Utils/LowerSwitch.o
lib/Transforms/Utils/LowerInvoke.o lib/Transforms/Utils/LoopSimplify.o
lib/Transforms/Utils/Local.o lib/Transforms/Utils/LCSSA.o
lib/Transforms/Utils/DemoteRegToStack.o
lib/Transforms/Utils/BreakCriticalEdges.o
lib/Transforms/Utils/BasicBlockUtils.o
lib/Transforms/Utils/AddrModeMatcher.o
lib/Transforms/Scalar/LoopStrengthReduce.o lib/Transforms/Scalar/GVN.o
lib/Transforms/Scalar/GEPSplitter.o
lib/Transforms/Scalar/CodeGenPrepare.o lib/Target/TargetRegisterInfo.o
lib/Target/TargetMachine.o lib/Target/TargetLoweringObjectFile.o
lib/Target/TargetInstrInfo.o lib/Target/TargetData.o
lib/Target/Mangler.o lib/System/TimeValue.o lib/System/Threading.o
lib/System/ThreadLocal.o lib/System/Signals.o lib/System/RWMutex.o
lib/System/Program.o lib/System/Process.o lib/System/Path.o
lib/System/Mutex.o lib/System/Memory.o lib/System/Host.o
lib/System/Errno.o lib/System/Atomic.o lib/Support/raw_ostream.o
lib/Support/circular_raw_ostream.o lib/Support/Twine.o
lib/Support/Timer.o lib/Support/TargetRegistry.o lib/Support/StringRef.o
lib/Support/StringPool.o lib/Support/StringMap.o
lib/Support/StringExtras.o lib/Support/Statistic.o
lib/Support/SmallVector.o lib/Support/SmallPtrSet.o
lib/Support/PrettyStackTrace.o lib/Support/MemoryBuffer.o
lib/Support/ManagedStatic.o lib/Support/GraphWriter.o
lib/Support/FormattedStream.o lib/Support/FoldingSet.o
lib/Support/ErrorHandling.o lib/Support/Dwarf.o lib/Support/Debug.o
lib/Support/ConstantRange.o lib/Support/CommandLine.o
lib/Support/Allocator.o lib/Support/APInt.o lib/Support/APFloat.o
lib/MC/MCSymbol.o lib/MC/MCStreamer.o lib/MC/MCSectionMachO.o
lib/MC/MCSectionELF.o lib/MC/MCSection.o lib/MC/MCNullStreamer.o
lib/MC/MCMachOStreamer.o lib/MC/MCInst.o lib/MC/MCExpr.o
lib/MC/MCContext.o lib/MC/MCAssembler.o lib/MC/MCAsmStreamer.o
lib/CodeGen/VirtRegRewriter.o lib/CodeGen/VirtRegMap.o
lib/CodeGen/UnreachableBlockElim.o
lib/CodeGen/TwoAddressInstructionPass.o
lib/CodeGen/TargetInstrInfoImpl.o lib/CodeGen/TailDuplication.o
lib/CodeGen/StrongPHIElimination.o lib/CodeGen/StackSlotColoring.o
lib/CodeGen/StackProtector.o lib/CodeGen/Spiller.o
lib/CodeGen/SlotIndexes.o lib/CodeGen/SjLjEHPrepare.o
lib/CodeGen/SimpleRegisterCoalescing.o lib/CodeGen/ShrinkWrapping.o
lib/CodeGen/ShadowStackGC.o lib/CodeGen/ScheduleDAGPrinter.o
lib/CodeGen/ScheduleDAGInstrs.o lib/CodeGen/ScheduleDAGEmit.o
lib/CodeGen/ScheduleDAG.o lib/CodeGen/RegisterScavenging.o
lib/CodeGen/RegisterCoalescer.o lib/CodeGen/RegAllocPBQP.o
lib/CodeGen/RegAllocLocal.o lib/CodeGen/RegAllocLinearScan.o
lib/CodeGen/PseudoSourceValue.o lib/CodeGen/PrologEpilogInserter.o
lib/CodeGen/ProcessImplicitDefs.o lib/CodeGen/PreAllocSplitting.o
lib/CodeGen/PostRASchedulerList.o lib/CodeGen/Passes.o
lib/CodeGen/PHIElimination.o lib/CodeGen/OptimizeExts.o
lib/CodeGen/OcamlGC.o lib/CodeGen/ObjectCodeEmitter.o
lib/CodeGen/MachineVerifier.o lib/CodeGen/MachineSink.o
lib/CodeGen/MachineSSAUpdater.o lib/CodeGen/MachineRegisterInfo.o
lib/CodeGen/MachinePassRegistry.o lib/CodeGen/MachineModuleInfoImpls.o
lib/CodeGen/MachineModuleInfo.o lib/CodeGen/MachineLoopInfo.o
lib/CodeGen/MachineLICM.o lib/CodeGen/MachineInstr.o
lib/CodeGen/MachineFunctionPass.o lib/CodeGen/MachineFunctionAnalysis.o
lib/CodeGen/MachineFunction.o lib/CodeGen/MachineDominators.o
lib/CodeGen/MachineBasicBlock.o lib/CodeGen/LowerSubregs.o
lib/CodeGen/LiveVariables.o lib/CodeGen/LiveStackAnalysis.o
lib/CodeGen/LiveIntervalAnalysis.o lib/CodeGen/LiveInterval.o
lib/CodeGen/LatencyPriorityQueue.o lib/CodeGen/LLVMTargetMachine.o
lib/CodeGen/IntrinsicLowering.o lib/CodeGen/IfConversion.o
lib/CodeGen/GCStrategy.o lib/CodeGen/GCMetadataPrinter.o
lib/CodeGen/GCMetadata.o lib/CodeGen/ExactHazardRecognizer.o
lib/CodeGen/ELFWriter.o lib/CodeGen/ELFCodeEmitter.o
lib/CodeGen/DwarfEHPrepare.o lib/CodeGen/DeadMachineInstructionElim.o
lib/CodeGen/CriticalAntiDepBreaker.o lib/CodeGen/CodePlacementOpt.o
lib/CodeGen/CalcSpillWeights.o lib/CodeGen/BranchFolding.o
lib/CodeGen/AggressiveAntiDepBreaker.o lib/Analysis/ValueTracking.o
lib/Analysis/ScalarEvolutionExpander.o lib/Analysis/ScalarEvolution.o
lib/Analysis/ProfileInfo.o lib/Analysis/PHITransAddr.o
lib/Analysis/MemoryDependenceAnalysis.o lib/Analysis/MemoryBuiltins.o
lib/Analysis/LoopPass.o lib/Analysis/LoopInfo.o
lib/Analysis/InstructionSimplify.o lib/Analysis/IVUsers.o
lib/Analysis/DebugInfo.o lib/Analysis/ConstantFolding.o
lib/Analysis/CaptureTracking.o lib/Analysis/BasicAliasAnalysis.o
lib/Analysis/AliasSetTracker.o lib/Analysis/AliasAnalysis.o

Output for the 3rd llvm-config-perobjincl command:
libLLVMX86CodeGen.a lib/VMCore/ValueTypes.o
lib/VMCore/ValueSymbolTable.o lib/VMCore/Value.o lib/VMCore/Use.o
lib/VMCore/TypeSymbolTable.o lib/VMCore/Type.o
lib/VMCore/PrintModulePass.o lib/VMCore/PassManager.o lib/VMCore/Pass.o
lib/VMCore/Module.o lib/VMCore/Metadata.o lib/VMCore/LeakDetector.o
lib/VMCore/LLVMContext.o lib/VMCore/IntrinsicInst.o
lib/VMCore/Instructions.o lib/VMCore/Instruction.o
lib/VMCore/InlineAsm.o lib/VMCore/IRBuilder.o lib/VMCore/Globals.o
lib/VMCore/Function.o lib/VMCore/Dominators.o lib/VMCore/Constants.o
lib/VMCore/ConstantFold.o lib/VMCore/BasicBlock.o
lib/VMCore/Attributes.o lib/VMCore/AsmWriter.o
lib/Transforms/Utils/UnifyFunctionExitNodes.o
lib/Transforms/Utils/SimplifyCFG.o lib/Transforms/Utils/SSAUpdater.o
lib/Transforms/Utils/PromoteMemoryToRegister.o
lib/Transforms/Utils/Mem2Reg.o lib/Transforms/Utils/LowerSwitch.o
lib/Transforms/Utils/LowerInvoke.o lib/Transforms/Utils/LoopSimplify.o
lib/Transforms/Utils/Local.o lib/Transforms/Utils/LCSSA.o
lib/Transforms/Utils/DemoteRegToStack.o
lib/Transforms/Utils/BreakCriticalEdges.o
lib/Transforms/Utils/BasicBlockUtils.o
lib/Transforms/Utils/AddrModeMatcher.o
lib/Transforms/Scalar/LoopStrengthReduce.o lib/Transforms/Scalar/GVN.o
lib/Transforms/Scalar/GEPSplitter.o
lib/Transforms/Scalar/CodeGenPrepare.o
lib/Target/X86/X86TargetObjectFile.o lib/Target/X86/X86TargetMachine.o
lib/Target/X86/X86Subtarget.o lib/Target/X86/X86RegisterInfo.o
lib/Target/X86/X86MCCodeEmitter.o lib/Target/X86/X86MCAsmInfo.o
lib/Target/X86/X86JITInfo.o lib/Target/X86/X86InstrInfo.o
lib/Target/X86/X86ISelLowering.o lib/Target/X86/X86ISelDAGToDAG.o
lib/Target/X86/X86FloatingPointRegKill.o
lib/Target/X86/X86FloatingPoint.o lib/Target/X86/X86FastISel.o
lib/Target/X86/X86ELFWriterInfo.o lib/Target/X86/X86CodeEmitter.o
lib/Target/X86/X86COFFMachineModuleInfo.o
lib/Target/X86/TargetInfo/X86TargetInfo.o lib/Target/TargetSubtarget.o
lib/Target/TargetRegisterInfo.o lib/Target/TargetMachine.o
lib/Target/TargetLoweringObjectFile.o lib/Target/TargetInstrInfo.o
lib/Target/TargetFrameInfo.o lib/Target/TargetELFWriterInfo.o
lib/Target/TargetData.o lib/Target/SubtargetFeature.o
lib/Target/Mangler.o lib/System/TimeValue.o lib/System/Threading.o
lib/System/ThreadLocal.o lib/System/Signals.o lib/System/RWMutex.o
lib/System/Program.o lib/System/Process.o lib/System/Path.o
lib/System/Mutex.o lib/System/Memory.o lib/System/Host.o
lib/System/Errno.o lib/System/Atomic.o lib/Support/raw_ostream.o
lib/Support/circular_raw_ostream.o lib/Support/Twine.o
lib/Support/Triple.o lib/Support/Timer.o lib/Support/TargetRegistry.o
lib/Support/StringRef.o lib/Support/StringPool.o lib/Support/StringMap.o
lib/Support/StringExtras.o lib/Support/Statistic.o
lib/Support/SmallVector.o lib/Support/SmallPtrSet.o
lib/Support/PrettyStackTrace.o lib/Support/MemoryBuffer.o
lib/Support/ManagedStatic.o lib/Support/GraphWriter.o
lib/Support/FormattedStream.o lib/Support/FoldingSet.o
lib/Support/ErrorHandling.o lib/Support/Dwarf.o lib/Support/Debug.o
lib/Support/ConstantRange.o lib/Support/CommandLine.o
lib/Support/Allocator.o lib/Support/APInt.o lib/Support/APFloat.o
lib/MC/MCSymbol.o lib/MC/MCStreamer.o lib/MC/MCSectionMachO.o
lib/MC/MCSectionELF.o lib/MC/MCSection.o lib/MC/MCNullStreamer.o
lib/MC/MCMachOStreamer.o lib/MC/MCInst.o lib/MC/MCExpr.o
lib/MC/MCContext.o lib/MC/MCCodeEmitter.o lib/MC/MCAssembler.o
lib/MC/MCAsmStreamer.o lib/MC/MCAsmInfoDarwin.o lib/MC/MCAsmInfoCOFF.o
lib/MC/MCAsmInfo.o lib/CodeGen/VirtRegRewriter.o
lib/CodeGen/VirtRegMap.o lib/CodeGen/UnreachableBlockElim.o
lib/CodeGen/TwoAddressInstructionPass.o
lib/CodeGen/TargetInstrInfoImpl.o lib/CodeGen/TailDuplication.o
lib/CodeGen/StrongPHIElimination.o lib/CodeGen/StackSlotColoring.o
lib/CodeGen/StackProtector.o lib/CodeGen/Spiller.o
lib/CodeGen/SlotIndexes.o lib/CodeGen/SjLjEHPrepare.o
lib/CodeGen/SimpleRegisterCoalescing.o lib/CodeGen/ShrinkWrapping.o
lib/CodeGen/SelectionDAG/TargetLowering.o
lib/CodeGen/SelectionDAG/SelectionDAGPrinter.o
lib/CodeGen/SelectionDAG/SelectionDAGISel.o
lib/CodeGen/SelectionDAG/SelectionDAGBuilder.o
lib/CodeGen/SelectionDAG/SelectionDAG.o
lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.o
lib/CodeGen/SelectionDAG/ScheduleDAGRRList.o
lib/CodeGen/SelectionDAG/ScheduleDAGList.o
lib/CodeGen/SelectionDAG/ScheduleDAGFast.o
lib/CodeGen/SelectionDAG/LegalizeVectorTypes.o
lib/CodeGen/SelectionDAG/LegalizeVectorOps.o
lib/CodeGen/SelectionDAG/LegalizeTypesGeneric.o
lib/CodeGen/SelectionDAG/LegalizeTypes.o
lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.o
lib/CodeGen/SelectionDAG/LegalizeFloatTypes.o
lib/CodeGen/SelectionDAG/LegalizeDAG.o
lib/CodeGen/SelectionDAG/InstrEmitter.o
lib/CodeGen/SelectionDAG/FunctionLoweringInfo.o
lib/CodeGen/SelectionDAG/FastISel.o
lib/CodeGen/SelectionDAG/DAGCombiner.o
lib/CodeGen/SelectionDAG/CallingConvLower.o
lib/CodeGen/ScheduleDAGPrinter.o lib/CodeGen/ScheduleDAGInstrs.o
lib/CodeGen/ScheduleDAGEmit.o lib/CodeGen/ScheduleDAG.o
lib/CodeGen/RegisterScavenging.o lib/CodeGen/RegisterCoalescer.o
lib/CodeGen/RegAllocLinearScan.o lib/CodeGen/PseudoSourceValue.o
lib/CodeGen/PrologEpilogInserter.o lib/CodeGen/ProcessImplicitDefs.o
lib/CodeGen/PreAllocSplitting.o lib/CodeGen/PostRASchedulerList.o
lib/CodeGen/Passes.o lib/CodeGen/PHIElimination.o
lib/CodeGen/OptimizeExts.o lib/CodeGen/MachineVerifier.o
lib/CodeGen/MachineSink.o lib/CodeGen/MachineSSAUpdater.o
lib/CodeGen/MachineRegisterInfo.o lib/CodeGen/MachinePassRegistry.o
lib/CodeGen/MachineModuleInfoImpls.o lib/CodeGen/MachineModuleInfo.o
lib/CodeGen/MachineLoopInfo.o lib/CodeGen/MachineLICM.o
lib/CodeGen/MachineInstr.o lib/CodeGen/MachineFunctionPass.o
lib/CodeGen/MachineFunctionAnalysis.o lib/CodeGen/MachineFunction.o
lib/CodeGen/MachineDominators.o lib/CodeGen/MachineBasicBlock.o
lib/CodeGen/LowerSubregs.o lib/CodeGen/LiveVariables.o
lib/CodeGen/LiveStackAnalysis.o lib/CodeGen/LiveIntervalAnalysis.o
lib/CodeGen/LiveInterval.o lib/CodeGen/LatencyPriorityQueue.o
lib/CodeGen/LLVMTargetMachine.o lib/CodeGen/GCStrategy.o
lib/CodeGen/GCMetadata.o lib/CodeGen/ExactHazardRecognizer.o
lib/CodeGen/DwarfEHPrepare.o lib/CodeGen/DeadMachineInstructionElim.o
lib/CodeGen/CriticalAntiDepBreaker.o lib/CodeGen/CodePlacementOpt.o
lib/CodeGen/CalcSpillWeights.o lib/CodeGen/BranchFolding.o
lib/CodeGen/AsmPrinter/DwarfWriter.o
lib/CodeGen/AsmPrinter/DwarfPrinter.o
lib/CodeGen/AsmPrinter/DwarfLabel.o
lib/CodeGen/AsmPrinter/DwarfException.o
lib/CodeGen/AsmPrinter/DwarfDebug.o lib/CodeGen/AsmPrinter/DIE.o
lib/CodeGen/AsmPrinter/AsmPrinter.o
lib/CodeGen/AggressiveAntiDepBreaker.o lib/Analysis/ValueTracking.o
lib/Analysis/ScalarEvolutionExpander.o lib/Analysis/ScalarEvolution.o
lib/Analysis/ProfileInfo.o lib/Analysis/PHITransAddr.o
lib/Analysis/MemoryDependenceAnalysis.o lib/Analysis/MemoryBuiltins.o
lib/Analysis/LoopPass.o lib/Analysis/LoopInfo.o
lib/Analysis/InstructionSimplify.o lib/Analysis/IVUsers.o
lib/Analysis/DebugInfo.o lib/Analysis/ConstantFolding.o
lib/Analysis/CaptureTracking.o lib/Analysis/BasicAliasAnalysis.o
lib/Analysis/AliasSetTracker.o lib/Analysis/AliasAnalysis.o



More information about the llvm-commits mailing list