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
>...