search for: runonmachinefunct

Displaying 20 results from an estimated 419 matches for "runonmachinefunct".

2013 Oct 08
2
[LLVMdev] What makes register allocation expensive?
...counts from 1 to 10, so it is about a dozen lines long and refers to maybe five hundred lines of library code. All times are in milliseconds, and the total includes both compilation and program execution. llvm-3.1: 2722 total 2342 llvm::ExecutionEngine::runFunctionAsMain 1144 SelectionDAGIsel::runOnMachineFunction 294 RegisterCoalescer::runOnMachineFunction 116 RAGreedy::runOnMachineFunction llvm-3.3: 53683 total 52661 llvm::ExecutionEngine::runFunctionAsMain 16955 RAGreedy::runOnMachineFunction 15149 RegisterCoalescer::runOnMachineFunction 15072 SelectionDAGIsel::runOnMachineFunction Both cases us...
2013 Oct 08
0
[LLVMdev] What makes register allocation expensive?
...counts from 1 to 10, so it is about a dozen lines long and refers to maybe five hundred lines of library code. All times are in milliseconds, and the total includes both compilation and program execution. llvm-3.1: 2722 total 2342 llvm::ExecutionEngine::runFunctionAsMain 1144 SelectionDAGIsel::runOnMachineFunction 294 RegisterCoalescer::runOnMachineFunction 116 RAGreedy::runOnMachineFunction llvm-3.3: 53683 total 52661 llvm::ExecutionEngine::runFunctionAsMain 16955 RAGreedy::runOnMachineFunction 15149 RegisterCoalescer::runOnMachineFunction 15072 SelectionDAGIsel::runOnMachineFunction Both cases us...
2011 Oct 12
1
[LLVMdev] Problem in TwoAddressInstructionPass::runOnMachineFunction regarding subRegs
Hi, It seems to me that the TwoAddressInstructionPass::runOnMachineFunction method has some problems when the tied destination register has a subReg. The two changes below improves the situation for me but I'm all new to this so I'm not sure how it's supposed to work. I'm running on 2.9. Any comments? @@ -1172,12 +1172,20 @@ bool TwoAddressInstruct...
2005 Jul 02
0
[LLVMdev] X86AsmPrinter + MASM and NASM backends
I am now getting the following link errors on all executables: x86.lib(X86AsmPrinter.obj) : error LNK2001: unresolved external symbol "public: virtual bool __thiscall llvm::x86::X86ATTAsmPrinter::runOnMachineFunction(class llvm::MachineFunction &)" (?runOnMachineFunction at X86ATTAsmPrinter@x86 at llvm@@UAE_NAAVMachineFunction at 3@@Z) x86.lib(X86AsmPrinter.obj) : error LNK2001: unresolved external symbol "public: virtual bool __thiscall llvm::x86::X86IntelAsmPrinter::runOnMachineFunction(c...
2009 Mar 16
2
[LLVMdev] MachO and ELFWriters/MachineCodeEmittersarehard-codedinto LLVMTargetMachine
...ng > change perhaps?) Yes, it uses a MachineCodeEmitter in its internals (MCE) and as a constructor argument. > This class receives (during construction) a reference to a > MachineCodeEmitter (e.g. MachOCodeEmitter, which in turn stores a > reference to a MachOWritter). > > The runOnMachineFunction for the X86CodeEmitter does: > - call MachOCodeEmitter::startFunction > - for each basicblock in function: > - call MachOCodeEmitter::StartMachineBasicBlock > - for each instruction in basicblock: > - emit instruction, using MachineCodeEmitter::emit* functions > - cal...
2019 Mar 18
0
Two FPPassManager objects, and LocalStackSlotAllocation::runOnMachineFunction returns true but has not changed the data
...thing I have done wrong, but my executions of llc are creating two FPPassManager objects (that run different sets of passes). FPPassManager contains a static char ID (as expected), so I expected only one FPPassManager object to be constructed during a single execution. LocalStackSlotAllocation::runOnMachineFunction returns true even when it has not changed the data (in any way that I can see). The destructor of SelectionDAGISel deletes MF, a pointer to a member variable the class did not new. Again, I'm too new to LLVM to know whether these things are as designed or unintentional. Many Th...
2009 May 13
0
[LLVMdev] MSVC compile error with trunk
...m@@UBEXAAVAnalysisUsage at 2@@Z) 32>LLVMCodeGen.lib(PrologEpilogInserter.obj) : error LNK2019: unresolved external symbol "private: void __thiscall llvm::PEI::clearAllSets(void)" (?clearAllSets at PEI@llvm@@AAEXXZ) referenced in function "public: virtual bool __thiscall llvm::PEI::runOnMachineFunction(class llvm::MachineFunction &)" (?runOnMachineFunction at PEI@llvm@@UAE_NAAVMachineFunction at 2@@Z) 32>LLVMCodeGen.lib(PrologEpilogInserter.obj) : error LNK2019: unresolved external symbol "private: void __thiscall llvm::PEI::placeCSRSpillsAndRestores(class llvm::MachineFunctio...
2009 Mar 16
0
[LLVMdev] MachO and ELFWriters/MachineCodeEmittersarehard-codedinto LLVMTargetMachine
...used MachO to 'grok' the concept. > > >> 3. X86CodeEmitter >>   - a MachineFunctionPass, NOT a MachineCodeEmitter (Could the naming >> change perhaps?) > > Yes, it uses a MachineCodeEmitter in its internals (MCE) and as a > constructor argument. > > runOnMachineFunction is a standard LLVM message we cannot play around with > it. > I'm well aware that runOnMachineFunction is a standard LLVM meme. My suggestion in no way conflicts with its standard meaning. All I meant was that we could build a new target-nonspecific 'base class', called e.g....
2011 Jul 08
2
[LLVMdev] Best location in code generation for insertion of instrumentation to measure stack depth?
I investigated the MachineFunctionPass (that is runOnMachineFunction, I believe). In my experimentation it didn't seem that the MachineFrameInfo was populated (it consistently said that the stack depth was 0, for example). I might have been doing something wrong? On Fri, Jul 8, 2011 at 5:21 PM, John Criswell <criswell at illinois.edu> wrote: > On...
2005 Jul 01
4
[LLVMdev] X86AsmPrinter + MASM and NASM backends
Chris, Okay, I have done as you have requested. The only thing I did not like was a clsh between the enum X86 and the new namespace X86, which I had to rename as x86 :( Anyway, I suppose the lower case 'x' in 'x86' fits in with the lowercase 'llvm' namespace. Build tested on MS VC2003 and Linux. Aaron -------------- next part -------------- A non-text attachment was
2009 Mar 16
0
[LLVMdev] MachO and ELF Writers/MachineCodeEmittersarehard-codedinto LLVMTargetMachine
...n discuss in detail. I'm using MachO as the example object format, as the ELF code is totally broken and outdated. Lets use the following as the basis for our discussion? There are 3 classes which participate in object file emission: 1. MachOWriter - a MachineFunctionPass, with a donothing runOnMachineFunction. doInitialization and doFinalization are used to emit the object file header and finalize the various object file segments, respectively. The MachOWriter is responsible for creation of MachOCodeEmitter, via it's getMachineCodeEmitter function. 2. MachOCodeEmitter - a MachineCodeEmitter...
2011 Jul 08
0
[LLVMdev] Best location in code generation for insertion of instrumentation to measure stack depth?
On 7/8/11 4:49 PM, Andrew Ruef wrote: > I investigated the MachineFunctionPass (that is runOnMachineFunction, > I believe). A MachineFunctionPass is a class that you inherit from to write a transform that operates on MachineInstrs (i.e., native code instructions generated from the LLVM IR instructions). The runOnMachineFunction() method is its entry point (i.e., the code generator calls runOn...
2011 Jan 13
1
[LLVMdev] Where is liveness analysis pass?
Hello all Currently I want to use the accurate liveness information when writing a *target independent* FunctionPass based on LLVM. The one I can find is LiveValues, a FunctionPass. But it doesn't use classic dataflow equation and can only provide approximate and conservative result. The another one is LiveVariables which use classic data flow equation, but it comes from Clang's analysis
2011 Jan 13
0
[LLVMdev] Where is liveness analysis pass?
...na.com> Subject: RE: [LLVMdev] Where is liveness analysis pass? Date: 2011-1-13 16:28:59 Hi Zhanglin. First I suggest to read http://llvm.org/docs/CodeGenerator.html#liveintervals. :) I saw the basic processing order of Live interval in backend LLVM source code as following: 1. LiveVariables::runOnMachineFunction() "lib/CodeGen/LiveVariables.cpp" --> This pass computes live variable information for each virtual register and register allocatable physical register in the function. (Target dependent) 2. SlotIndexes::runOnMachineFunction() "lib/CodeGen/SlotIndexes.cpp" --> This pass...
2004 Oct 19
2
[LLVMdev] Question about MachineFunction Pass
...compile it, I found there wasnot command option I registered. I used regular way to do it like RegisterOpt <...> X("... ", "... "), but I cannot see the optimized option when I use opt -load ../../lib/Debug/libxxx.so --help. And from LLVM source code, I saw some passes use runOnMachineFunction(MachineFunction &MF), but there is no API like registerOpt. what does it mean? Thanks For MachineFunction pass, the doc says it is not allowed to do any of the following: 1.. Modify any LLVM Instructions, BasicBlocks or Functions. 2.. Modify a MachineFunction other than the one currentl...
2013 Mar 15
2
[LLVMdev] write a simple MachineFunctionPass
...m; namespace { class CFGexplorator : public MachineFunctionPass { public: static char ID; // Pass identification, replacement for typeid CFGexplorator() : MachineFunctionPass(ID) { //initializeMemDepPrinterPass(*PassRegistry::getPassRegistry()); } private: virtual bool runOnMachineFunction(MachineFunction &MF); virtual void getAnalysisUsage(AnalysisUsage &AU) const { MachineFunctionPass::getAnalysisUsage(AU); } }; } // end anonymous namespace char CFGexplorator::ID = 0; static RegisterPass<CFGexplorator> Y("mycfg", "mycfg", false...
2013 Jan 14
2
[LLVMdev] Troubleshooting Internal Garbage Collection
...DAGISel::SelectBasicBlock(llvm::ilist_iterator<llvm::Instruction const>, llvm::ilist_iterator<llvm::Instruction const>, bool&) + 198 16 llc 0x086f3cf0 llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function const&) + 2176 17 llc 0x086f5850 llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&) + 1392 18 llc 0x088a0aca llvm::MachineFunctionPass::runOnFunction(llvm::Function&) + 186 19 llc 0x08c42fa3 llvm::FPPassManager::runOnFunction(llvm::Function&) + 659 20 llc 0x08c4302c llvm::FPPassManager::runOnModule(llvm::Module&) + 76 21...
2011 Aug 24
1
[LLVMdev] Segmented Stacks (re-roll)
Hi! > According to the patch you send, the pass is not doing anything: > > +bool StackSegmenter::runOnMachineFunction(MachineFunction &MF) { > + return false; > +} > + It is, in the next patch. diff --git a/lib/CodeGen/StackSegmenter.cpp b/lib/CodeGen/StackSegmenter.cpp index 5ffb8f2..cc2ca87 100644 --- a/lib/CodeGen/StackSegmenter.cpp +++ b/lib/CodeGen/StackSegmenter.cpp @@ -40,7 +40,10 @@ void...
2013 Aug 05
3
[LLVMdev] Can I add GlobalVariable in MachineFunctionPass ?
Micah, As you expected, I am trying to create local memory but in the NVPTX backend. It's really not convenient that I can't create local memory in runOnMachineFunction. Hmm.... Since I should do it at doInitialization stage, I also need to do some tricks in global variable and AsmPrinter to resize it. Did you use the similar way? Antony 2013/8/5 Micah Villmow <micah.villmow at smachines.com> > Antony, > What are you trying to accomplish in t...
2009 Mar 16
2
[LLVMdev] MachO and ELF Writers/MachineCodeEmittersarehard-codedinto LLVMTargetMachine
>> Sorry, I disagree actually the MachineCodeEmitter or the >> 'MachineCodeWritter' does not do any file handling at all. Do look at the >> code for the MachineCodeWritter and you will see it only writes to memory >> and if it reaches the end of the allotted memory I believe higher ordered >> logic reallocates a larget buffer and starts again from scratch.