search for: tailjmpd

Displaying 6 results from an estimated 6 matches for "tailjmpd".

2008 Jan 03
2
[LLVMdev] Tailcall optimization in jit stopped working
...ision 45541) +++ lib/Target/X86/X86CodeEmitter.cpp (working copy) @@ -601,7 +601,8 @@ if (MO.isMachineBasicBlock()) { emitPCRelativeBlockAddress(MO.getMBB()); } else if (MO.isGlobalAddress()) { - bool NeedStub = !IsStatic || + bool NeedStub = Opcode == X86::TAILJMPd || Opcode == X86::TAILJMPr || + Opcode == X86::TAILJMPm || !IsStatic || (Is64BitMode && TM.getCodeModel() == CodeModel::Large); emitGlobalAddress(MO.getGlobal(), X86::reloc_pcrel_word, 0, 0, NeedStub);
2009 Jun 10
3
[LLVMdev] Why does the x86-64 JIT emit stubs for external calls?
...tructions: // Assume undefined functions may be outside the Small codespace. bool NeedStub = (Is64BitMode && (TM.getCodeModel() == CodeModel::Large || TM.getSubtarget<X86Subtarget>().isTargetDarwin())) || Opcode == X86::TAILJMPd; emitGlobalAddress(MO.getGlobal(), X86::reloc_pcrel_word, MO.getOffset(), 0, NeedStub); This causes every external call to be emitted as a call to a stub which then jumps to the real function. I understand, thanks to the helpful folks on #llvm, that calls across m...
2009 Jun 11
0
[LLVMdev] Why does the x86-64 JIT emit stubs for external calls?
...me undefined functions may be outside the Small > codespace. > bool NeedStub = > (Is64BitMode && > (TM.getCodeModel() == CodeModel::Large || > TM.getSubtarget<X86Subtarget>().isTargetDarwin())) || > Opcode == X86::TAILJMPd; > emitGlobalAddress(MO.getGlobal(), X86::reloc_pcrel_word, > MO.getOffset(), 0, NeedStub); > > This causes every external call to be emitted as a call to a stub > which then jumps to the real function. > I understand, thanks to the helpful folks on...
2009 Jun 11
1
[LLVMdev] [unladen-swallow] Re: Why does the x86-64 JIT emit stubs for external calls?
...ined functions may be outside the Small codespace. >>       bool NeedStub = >>         (Is64BitMode && >>             (TM.getCodeModel() == CodeModel::Large || >>              TM.getSubtarget<X86Subtarget>().isTargetDarwin())) || >>         Opcode == X86::TAILJMPd; >>       emitGlobalAddress(MO.getGlobal(), X86::reloc_pcrel_word, >>                         MO.getOffset(), 0, NeedStub); >> >> This causes every external call to be emitted as a call to a stub >> which then jumps to the real function. >> I understand, thanks t...
2007 Sep 24
0
[LLVMdev] RFC: Tail call optimization X86
...+ std::find(RI->op_begin(), RI->op_end(), + (Value*)&I) != RI->op_end()) + return true; + } + } + return false; +} Also, shouldn't this function be "static"? let isCall = 1, isTerminator = 1, isReturn = 1, isBarrier = 1 in + def TAILJMPd : IBr<0xE9, (ins i32imm:$dst), "jmp\t${dst:call} # TAILCALL", + []>; +let isCall = 1, isTerminator = 1, isReturn = 1, isBarrier = 1 in + def TAILJMPr : I<0xFF, MRM4r, (outs), (ins GR32:$dst), "jmp{l}\t{*} $dst # TAILCALL", + []>;...
2007 Sep 23
2
[LLVMdev] RFC: Tail call optimization X86
The patch is against revision 42247. -------------- next part -------------- A non-text attachment was scrubbed... Name: tailcall-src.patch Type: application/octet-stream Size: 62639 bytes Desc: not available URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20070923/4770302f/attachment.obj>