Displaying 20 results from an estimated 46 matches for "targetinstrdesc".
2010 Mar 19
0
[LLVMdev] Instruction with variable number of outputs
...:$addr, pred:$p,
> reglist:$dsts, variable_ops),
> IndexModeNone, LdStMulFrm, IIC_iLoadm,
> "ldm${addr:submode}${p}\t$addr, $dsts", "", []>;
>
> Tablegen produces an instruction description
Ok, you mean TargetInstrDesc, right?
> with 5 input operands: 2 for $addr, 2 for $p, and 1 for $dsts. But $dsts and the following variable_ops are all outputs!
Right, variable_ops means that it takes a variable number of operands, not that an operand has a variable number of registers.
> The description should only ha...
2009 Jul 21
3
[LLVMdev] boost shared pointer & llvm
hi,
when using the execution engine (no matter, if JIT or Interpreter) i get the
following assertion as soon as i use boost::shared_ptr:
/build/buildd/llvm-2.5/lib/Target/X86/X86CodeEmitter.cpp:522:
void<unnamed>::Emitter::emitInstruction(const llvm::MachineInstr&, const
llvm::TargetInstrDesc*): Assertion `0 && "JIT does not support inline asm!\n"'
failed.
how can i find out which instruction is executed at this point or in which
function we are currently?
i also attached a very small example, which triggers the assertion when run
with lli.
thanks a lot in ad...
2010 Mar 19
2
[LLVMdev] Instruction with variable number of outputs
Hi,
After Bob fixed the two-address format of the ARM ldm/stm instructions, a problem remains. The load multiple instruction looks like:
// A list of registers separated by comma. Used by load/store multiple.
def reglist : Operand<i32> {
let PrintMethod = "printRegisterList";
}
def LDM : AXI4ld<(outs), (ins addrmode4:$addr, pred:$p,
reglist:$dsts,
2009 Oct 22
0
[LLVMdev] request for help writing a register allocator
...ding these in your calculations you will probably have some errors.
> My apologies for not mentioning this earlier.
>
> You can find the set of implicit uses and defs by querying the
> TargetInstDesc object for each MachineInstr (call MachineInstr::getDesc() to
> get it, and then the TargetInstrDesc::getImplicitUses() and
> TargetInstrDesc::getImplicitDefs() methods to find the regs used/definied by
> this instr).
>
Oops. Seems we copy implicit operands like this into MachineOperands on the
instruction before register allocation. Disregard the above advice - you do
not need to check...
2009 Jun 04
1
[LLVMdev] assertion in LeakDetector
Hi Bill,
I am using the following version of BuildMI :
MachineInstrBuilder BuildMI(MachineFunction &MF,
const TargetInstrDesc &TID,
unsigned DestReg)
I do the following :
void createInstrs(std::vector<MachineInstr *>& ilist)
{
Machine Instr *mi;
mi = BuildMI(MF, someTID, somereg);
ilist.push_back(mi);
mi = BuildMI(MF, someotherTID, someotherreg);
ilist.push_ba...
2009 Jun 12
6
[LLVMdev] Bug in x86 JIT fast emitter.
...failure when
using thread-local variables and the fast emitter.
It only happens with the JIT, the fast emiiter and thread-locals.
(The IR passes the verifier)
Here's the failure:
X86CodeEmitter.cpp:516: void<unnamed>::Emitter::emitInstruction(const
llvm::MachineInstr&, const llvm::TargetInstrDesc*): Assertion `0 &&
"psuedo instructions should be removed before code emission"' failed.
There is a problem with submitting a bug-report, however.
Since llc has no trouble with thread-locals, I cannot actually generate
the assertion failure, without my compiler-generator.
I...
2010 Mar 19
2
[LLVMdev] Instruction with variable number of outputs
...reglist:$dsts, variable_ops),
>> IndexModeNone, LdStMulFrm, IIC_iLoadm,
>> "ldm${addr:submode}${p}\t$addr, $dsts", "", []>;
>>
>> Tablegen produces an instruction description
>
> Ok, you mean TargetInstrDesc, right?
Yes.
>> with 5 input operands: 2 for $addr, 2 for $p, and 1 for $dsts. But $dsts and the following variable_ops are all outputs!
>
> Right, variable_ops means that it takes a variable number of operands, not that an operand has a variable number of registers.
>
>> T...
2009 Oct 22
4
[LLVMdev] request for help writing a register allocator
...ds. If you are not
including these in your calculations you will probably have some errors. My
apologies for not mentioning this earlier.
You can find the set of implicit uses and defs by querying the
TargetInstDesc object for each MachineInstr (call MachineInstr::getDesc() to
get it, and then the TargetInstrDesc::getImplicitUses() and
TargetInstrDesc::getImplicitDefs() methods to find the regs used/definied by
this instr).
2) How are you making sure that interfering virtregs never receive the same
physreg? If you're using the LiveIntervals analysis (and the
LiveInterval::overlaps(LiveInterval &) t...
2009 Jun 12
2
[LLVMdev] Bug in x86 JIT fast emitter.
...ter.
>> It only happens with the JIT, the fast emiiter and thread-locals.
>> (The IR passes the verifier)
>>
>> Here's the failure:
>>
>> X86CodeEmitter.cpp:516: void<unnamed>::Emitter::emitInstruction(const
>> llvm::MachineInstr&, const llvm::TargetInstrDesc*): Assertion `0 &&
>> "psuedo instructions should be removed before code emission"' failed.
>>
>> There is a problem with submitting a bug-report, however.
>> Since llc has no trouble with thread-locals, I cannot actually
>> generate
>> th...
2008 Sep 24
0
[LLVMdev] Determining the register type of a MachineOperand
You can get to the MachineInstr from a MachineOperand. Then get to its
TargetInstrDesc and TargetOperandInfo which has register class
information.
Evan
On Sep 23, 2008, at 12:44 PM, Villmow, Micah wrote:
> How do I determine what type of register(i.e. i32, f32, etc..) I am
> accessing from a MachineOperand? I.e. how do I get to the MVT
> struct, or equivalent inform...
2009 Jul 21
0
[LLVMdev] boost shared pointer & llvm
...the execution engine (no matter, if JIT or Interpreter) i get the
> following assertion as soon as i use boost::shared_ptr:
>
> /build/buildd/llvm-2.5/lib/Target/X86/X86CodeEmitter.cpp:522:
> void<unnamed>::Emitter::emitInstruction(const llvm::MachineInstr&, const
> llvm::TargetInstrDesc*): Assertion `0 && "JIT does not support inline asm!\n"'
> failed.
>
> how can i find out which instruction is executed at this point or in which
> function we are currently?
>
> i also attached a very small example, which triggers the assertion when run
&g...
2010 Apr 16
1
[LLVMdev] Delay Slot Filler
> You have to create one! Take a look at PPCHazardRecognizers.cpp
> and SPUHazardRecognizers.cpp for examples.
> If you can, contribute it back! :)
There is also generic hazard recognizer which works on top of
instruction itineraries.
--
With best regards, Anton Korobeynikov
Faculty of Mathematics and Mechanics, Saint Petersburg State University
2009 Jun 12
0
[LLVMdev] Bug in x86 JIT fast emitter.
...variables and the fast emitter.
> It only happens with the JIT, the fast emiiter and thread-locals.
> (The IR passes the verifier)
>
> Here's the failure:
>
> X86CodeEmitter.cpp:516: void<unnamed>::Emitter::emitInstruction(const
> llvm::MachineInstr&, const llvm::TargetInstrDesc*): Assertion `0 &&
> "psuedo instructions should be removed before code emission"' failed.
>
> There is a problem with submitting a bug-report, however.
> Since llc has no trouble with thread-locals, I cannot actually
> generate
> the assertion failure, wit...
2008 Sep 23
2
[LLVMdev] Determining the register type of a MachineOperand
How do I determine what type of register(i.e. i32, f32, etc..) I am
accessing from a MachineOperand? I.e. how do I get to the MVT struct, or
equivalent information, from a MachineOperand object?
Micah Villmow
Systems Engineer
Advanced Technology & Performance
Advanced Micro Devices Inc.
4555 Great America Pkwy,
Santa Clara, CA. 95054
P: 408-572-6219
F: 408-572-6596
2009 Jul 21
1
[LLVMdev] boost shared pointer & llvm
...o matter, if JIT or Interpreter) i get
> > the following assertion as soon as i use boost::shared_ptr:
> >
> > /build/buildd/llvm-2.5/lib/Target/X86/X86CodeEmitter.cpp:522:
> > void<unnamed>::Emitter::emitInstruction(const llvm::MachineInstr&, const
> > llvm::TargetInstrDesc*): Assertion `0 && "JIT does not support inline
> > asm!\n"' failed.
> >
> > how can i find out which instruction is executed at this point or in
> > which function we are currently?
> >
> > i also attached a very small example, which trigge...
2008 Mar 03
1
[LLVMdev] Cloning a function
...odule()->getFunction("powf");
func = CloneFunction(originalFunc, val);
currentModule()->getFunctionList().push_back(func);
unfortunately after this we get an assert:
vp-tris: /home/zack/projects/general/llvm/lib/Target/X86/X86CodeEmitter.cpp:412:
unsigned int sizeOfImm(const llvm::TargetInstrDesc*): Assertion `0
&& "Immediate size not set!"' failed.
which I'm a little confused about. Any idea what might be causing this and how
to fix it?
z
2009 Jun 13
0
[LLVMdev] Bug in x86 JIT fast emitter.
...JIT, the fast emiiter and thread-locals.
>>> (The IR passes the verifier)
>>>
>>> Here's the failure:
>>>
>>> X86CodeEmitter.cpp:516:
>>> void<unnamed>::Emitter::emitInstruction(const
>>> llvm::MachineInstr&, const llvm::TargetInstrDesc*): Assertion `0 &&
>>> "psuedo instructions should be removed before code emission"'
>>> failed.
>>>
>>> There is a problem with submitting a bug-report, however.
>>> Since llc has no trouble with thread-locals, I cannot actually...
2008 Apr 16
0
[LLVMdev] Being able to know the jitted code-size before emitting
...gned RegNo) const;
> - bool isX86_64ExtendedReg(const MachineOperand &MO);
> - unsigned determineREX(const MachineInstr &MI);
>
> bool gvNeedsLazyPtr(const GlobalValue *GV);
> };
> @@ -405,139 +403,6 @@
> }
> }
>
> -static unsigned sizeOfImm(const TargetInstrDesc *Desc) {
> - switch (Desc->TSFlags & X86II::ImmMask) {
> - case X86II::Imm8: return 1;
> - case X86II::Imm16: return 2;
> - case X86II::Imm32: return 4;
> - case X86II::Imm64: return 8;
> - default: assert(0 && "Immediate size not set!");
> -...
2008 Apr 15
4
[LLVMdev] Being able to know the jitted code-size before emitting
OK, here's a new patch that adds the infrastructure and the
implementation for X86, ARM and PPC of GetInstSize and GetFunctionSize.
Both functions are virtual functions defined in TargetInstrInfo.h.
For X86, I moved some commodity functions from X86CodeEmitter to
X86InstrInfo.
What do you think?
Nicolas
Evan Cheng wrote:
>
> I think both of these belong to TargetInstrInfo. And
2008 Jul 22
3
[LLVMdev] LICM/store-aliasing of global loads
...perand information to be less target-dependent and to
> make at least AliasAnalysis::pointsToConstantMemory queries.
OK, I will have a look. I assume the reference to M_REMATERIALIZABLE
in the comment for it should really be TID::Rematerializable? I also
noticed that the documentation for
TargetInstrDesc::isRematerializable() says "This flag is deprecated,
please don't use it anymore" -- could you explain what replaces it?
Stefanus
--
Stefanus Du Toit <stefanus.dutoit at rapidmind.com>
RapidMind Inc.
phone: +1 519 885 5455 x116 -- fax: +1 519 885 1463