search for: machine_function

Displaying 11 results from an estimated 11 matches for "machine_function".

2006 Aug 14
2
[LLVMdev] Folding instructions
...that is done in RegAllocLocal.cpp, or in LiveIntervalAnalysis.cpp, but I am getting errors that I don't know how to fix. Could someone tell me which steps should I take in order to correctly fold memory operands? The code that I am using is: const TargetMachine & target_machine = this->machine_function->getTarget(); const MRegisterInfo *ri = target_machine.getRegisterInfo(); MachineInstr * fmi = ri->foldMemoryOperand(mi, u, slot); if(fmi) { numFolded++; MachineBasicBlock * mbb = mi->getParent(); this->vrm->virtFolded(v_reg, mi, u, fmi); //std::cerr << "Foldin...
2006 Aug 14
0
[LLVMdev] Folding instructions
...tervalAnalysis.cpp, but I am getting > errors > that > I don't know how to fix. Could someone tell me which steps should I > take > in order > to correctly fold memory operands? The code that I am using is: > > const TargetMachine & target_machine = > this->machine_function->getTarget(); > const MRegisterInfo *ri = target_machine.getRegisterInfo(); > MachineInstr * fmi = ri->foldMemoryOperand(mi, u, slot); > if(fmi) { > numFolded++; > MachineBasicBlock * mbb = mi->getParent(); > this->vrm->virtFolded(v_reg, mi, u, fmi); >...
2007 Mar 04
1
[LLVMdev] infinite number of virtual registers - sorry, modified.
Hello. I am making a backend for a virtual machine. But it does assume infinite number of virtual registers unlike those of usual machines. In this case, how can I implement this? Would you mind telling me some tips? Thank you so much. Seung Jae Lee
2006 Jul 02
0
[LLVMdev] Inserting move instruction
...ysical register. I am using this code here: void PhiDeconstruction_Fer::add_move (MachineBasicBlock & mbb, unsigned src, unsigned dst) { MachineBasicBlock::iterator iter = mbb.getFirstTerminator(); const MRegisterInfo * reg_info = this->machine_function->getTarget().getRegisterInfo(); // TODO: verify if does not causes incorrect allocation: for(MRegisterInfo::regclass_iterator rcii = reg_info->regclass_begin(), rcie = reg_info->regclass_end(); rcii != rcie; ++rcii) { if( (*rcii)->contains(dst) )...
2006 Jul 02
2
[LLVMdev] Inserting move instruction
> On Sun, 2 Jul 2006, Fernando Magno Quintao Pereira wrote: > > > MachineBasicBlock::iterator iter = mbb.getFirstTerminator(); > > const TargetRegisterClass *rc = mf.getSSARegMap()->getRegClass(dst); > > const MRegisterInfo * reg_info = mf.getTarget().getRegisterInfo(); > > reg_info->copyRegToReg(mbb, iter, dst, src, rc); > > } > > >
2006 Aug 14
2
[LLVMdev] Folding instructions
...this->vrm->getStackSlot(v_reg); // First, try to fold the memory reference into the // instruction. If we can do this, we don't need to // insert spill code. const TargetMachine & target_machine = this->machine_function->getTarget(); const MRegisterInfo *ri = target_machine.getRegisterInfo(); MachineInstr * fmi = ri->foldMemoryOperand(mi, u, slot); if(fmi) { numFolded++; MachineBa...
2006 Aug 14
0
[LLVMdev] Folding instructions
...tStackSlot(v_reg); > // First, try to fold the memory reference into the > // instruction. If we can do this, we don't need to > // insert spill code. > const TargetMachine & target_machine = > this->machine_function->getTarget(); > const MRegisterInfo *ri = > target_machine.getRegisterInfo(); > MachineInstr * fmi = > ri->foldMemoryOperand(mi, u, slot); > if(fmi) { > numFolded++;...
2006 Jul 03
2
[LLVMdev] Inserting move instruction
...earlier. -Chris > void PhiDeconstruction_Fer::add_move > (MachineBasicBlock & mbb, unsigned src, unsigned > dst) { > MachineBasicBlock::iterator iter = mbb.getFirstTerminator(); > const MRegisterInfo * reg_info = > this->machine_function->getTarget().getRegisterInfo(); > > // TODO: verify if does not causes incorrect allocation: > for(MRegisterInfo::regclass_iterator rcii = reg_info->regclass_begin(), > rcie = reg_info->regclass_end(); rcii != rcie; ++rcii) { > if( (*rcii)-...
2004 May 05
0
[LLVMdev] Testing LLVM on OS X
....tree_node*, %union.tree_node*, %union.tree_node*, %union.tree_node*, int, int, %struct.momentary_level*, sbyte*, sbyte*, sbyte*, sbyte*, %struct.obstack*, %struct.obstack*, %struct.obstack*, %struct.obstack*, %struct.obstack*, %struct.obstack*, %struct.simple_obstack_stack*, int, int, %struct.machine_function*, %struct.rtx_def*, %struct.constant_descriptor**, %struct.pool_sym**, %struct.pool_constant*, %struct.pool_constant*, int }* (%union.tree_node*)* %find_function_data WARNING: Found global types that are not compatible: %struct.function** %outer_function_chain { \2, sbyte*, %...
2004 May 04
6
[LLVMdev] Testing LLVM on OS X
On Tue, 4 May 2004, Chris Lattner wrote: > I suspect that a large reason that LLVM does worst than a native C > compiler with the CBE+GCC is that LLVM generates very low-level C code, > and I'm not convinced that GCC is doing a very good job (ie, without > syntactic loops). Yup, this is EXACTLY what is going on. I took this very simple C function: int Array[1000]; void test(int
2004 May 05
2
[LLVMdev] Testing LLVM on OS X
...nion.tree_node*, %union.tree_node*, %union.tree_node*, int, int, > %struct.momentary_level*, sbyte*, sbyte*, sbyte*, sbyte*, > %struct.obstack*, %struct.obstack*, %struct.obstack*, %struct.obstack*, > %struct.obstack*, %struct.obstack*, %struct.simple_obstack_stack*, int, > int, %struct.machine_function*, %struct.rtx_def*, > %struct.constant_descriptor**, %struct.pool_sym**, > %struct.pool_constant*, %struct.pool_constant*, int }* > (%union.tree_node*)* %find_function_data > WARNING: Found global types that are not compatible: > %struct.function** %outer_function_chain &gt...