Displaying 20 results from an estimated 2000 matches similar to: "[LLVMdev] Lowering intrinsics in Codegen."
2011 Aug 25
0
[LLVMdev] [RFC] Splitting init.trampoline into init.trampoline and adjust.trampoline
Hi Sanjoy,
> Attached set of patches splits llvm.init.trampoline into an "init"
> phase and an "adjust" phase, as discussed on the "Go on dragonegg"
> thread.
thanks for doing this. The patches look good, though the decomposition into
individual patches is not that great (since things won't always work, in fact
not even compile I think, with not all
2019 May 09
3
Why did "llvm.memcpy" changed when emitting an object file?
Dear LLVM-Mailing list,
I have a beginners question again - please don't be mad at me!
I was playing around with llvm::Module instance and ended in iterating over all global values and functions. I then noticed the function "llvm.memcpy". As I understood, this is an intrinsic coming from the LLVM.
So far so good! I then emitted an object file with the llvm::ExecutionEngine and
2009 May 21
2
[LLVMdev] [PATCH] Add new phase to legalization to handle vector operations
On Wed, May 20, 2009 at 5:26 PM, Eli Friedman <eli.friedman at gmail.com> wrote:
> On Wed, May 20, 2009 at 4:55 PM, Dan Gohman <gohman at apple.com> wrote:
>> Can you explain why you chose the approach of using a new pass?
>> I pictured removing LegalizeDAG's type legalization code would
>> mostly consist of finding all the places that use TLI.getTypeAction
2007 Mar 31
4
[LLVMdev] About implementing new intrinsic
>> 3. Can I introduce an intrinsic that is actually a call to my function
>> that implements the logic? I suppose it is possible but unfortunately
>> I couldn't figure it out. For example, in GCC we can write an
>> intrinsic that translates to a C code.
>
> As part of PR1297 (http://llvm.org/PR1297) I am about to make this
> happen. There are certain kinds of
2012 Mar 02
4
[LLVMdev] replace hardcoded function names by intrinsics
Hi!
in the llvm code there are several places with hardcoded function names for
e.g. sin, sinf, sqrt, sqrtf etc., namely
ConstantFolding.cpp
InlineCost.cpp
SelectionDAGBuilder.cpp
IntrinsicLowering.cpp
TargetLowering.cpp
my question is: wouldn't it be beneficial to use intrinsics for this?
for example a c/c++
frontend (clang) could translate the function calls to intrinsics and
then in a
2010 Jun 07
2
[LLVMdev] IntrinsicLowering and several related problems
Dear all,
I'm using IntrinsicLowering class to remove all intrinsics in LLVM byte-code.
Unfortunately, I meet several problems:
1. Why I can not get the type of CallInst *CI?
!CI->getType()->isVoidTy() is not working and how to solve it?
This type information has some impacts with intrinsics such as flt_rounds.
2. Why Intrinsic::vastart and Intrinsic::powi are excluded from
2012 Mar 02
2
[LLVMdev] replace hardcoded function names by intrinsics
Hi,
>> in the llvm code there are several places with hardcoded function
>> names for e.g. sin, sinf, sqrt, sqrtf etc., namely
>> ConstantFolding.cpp
>> InlineCost.cpp
>> SelectionDAGBuilder.cpp
>> IntrinsicLowering.cpp
>> TargetLowering.cpp
>>
>> my question is: wouldn't it be beneficial to use intrinsics for this?
>> for example a
2009 Jul 18
2
[LLVMdev] Where does llvm.memcpy.i64 and friends get lowered ?
I am iterating through Modules symbols for 'test/CodeGen/X86/memcpy.bc
I get :-
---------- Functions ----------
llvm.memcpy.i64
Mangled name = llvm.memcpy.i64
DefaultVisibility
ExternalLinkage - Externally visible.
my_memcpy
Mangled name = my_memcpy
DefaultVisibility
ExternalLinkage - Externally visible.
my_memcpy2
Mangled name =
2007 Mar 31
0
[LLVMdev] About implementing new intrinsic
On Sat, 2007-03-31 at 12:38 -0800, Chris Lattner wrote:
> >> 3. Can I introduce an intrinsic that is actually a call to my function
> >> that implements the logic? I suppose it is possible but unfortunately
> >> I couldn't figure it out. For example, in GCC we can write an
> >> intrinsic that translates to a C code.
> >
> > As part of PR1297
2012 Mar 02
0
[LLVMdev] replace hardcoded function names by intrinsics
On Fri, 02 Mar 2012 13:55:18 +0100
Jochen Wilhelmy <jochen.wilhelmy at googlemail.com> wrote:
> Hi!
>
> in the llvm code there are several places with hardcoded function
> names for e.g. sin, sinf, sqrt, sqrtf etc., namely
> ConstantFolding.cpp
> InlineCost.cpp
> SelectionDAGBuilder.cpp
> IntrinsicLowering.cpp
> TargetLowering.cpp
>
> my question is:
2009 Jul 18
0
[LLVMdev] Where does llvm.memcpy.i64 and friends get lowered ?
On Sat, Jul 18, 2009 at 2:21 PM, Aaron
Gray<aaronngray.lists at googlemail.com> wrote:
> I am working on the COFF backend and am wondering where llvm.memcpy gets
> lowered to memcpy ?
It's done by ISel. See SelectionDAG::getMemcpy.
-Eli
2007 Mar 31
1
[LLVMdev] About implementing new intrinsic
On Sat, 31 Mar 2007, Ferad Zyulkyarov wrote:
>> IntrinsicLowering already does this. It lets you lower intrinsics to
>> arbitrary LLVM calls, including calls to external functions.
>
> I will try to do that in IntrinscLowering class. May you point me an
> intrinsic implementation that lowers to an llvm call.
bswap expands into a series of shifts and or's, for example.
2010 Jun 22
2
[LLVMdev] [RFC/PATCH] IntrinsicLowering improvements
Hi,
This is more of an RFC than for committing (hence the post to
llvmdev) but I'd like to have some opinions on these improvements
to IntrinsicLowering before I go ahead and implement the rest of
the intrinsics.
My main motivation for the single-thread lowering is to be able to run
code that uses these intrinsics in the KLEE symbolic execution engine
but I imagine it could have other uses
2012 Mar 02
0
[LLVMdev] replace hardcoded function names by intrinsics
On Fri, 02 Mar 2012 16:05:17 +0100
Duncan Sands <baldrick at free.fr> wrote:
> Hi,
>
> >> in the llvm code there are several places with hardcoded function
> >> names for e.g. sin, sinf, sqrt, sqrtf etc., namely
> >> ConstantFolding.cpp
> >> InlineCost.cpp
> >> SelectionDAGBuilder.cpp
> >> IntrinsicLowering.cpp
> >>
2007 Mar 31
0
[LLVMdev] About implementing new intrinsic
Hi,
> IntrinsicLowering already does this. It lets you lower intrinsics to
> arbitrary LLVM calls, including calls to external functions.
I will try to do that in IntrinscLowering class. May you point me an
intrinsic implementation that lowers to an llvm call.
Thanks for advices ans hints,
Ferad
--
Ferad Zyulkyarov
Barcelona Supercomputing Center
2009 Jul 18
0
[LLVMdev] Where does llvm.memcpy.i64 and friends get lowered ?
On Jul 18, 2009, at 2:56 PM, Aaron Gray wrote:
> I am iterating through Modules symbols for 'test/CodeGen/X86/memcpy.bc
If you're iterating over functions, just ignore all intrinsics.
-Chris
>
> I get :-
>
> ---------- Functions ----------
> llvm.memcpy.i64
> Mangled name = llvm.memcpy.i64
> DefaultVisibility
> ExternalLinkage -
2017 Oct 07
2
Bug 20871 -- is there a fix or work around?
Ignore the suggested fix in my earlier post. How about this?
diff --git a/lib/Target/X86/X86ISelLowering.cpp b/lib/Target/X86/X86ISelLowering.cpp
index 20c81c3..b8ebf42 100644
--- a/lib/Target/X86/X86ISelLowering.cpp
+++ b/lib/Target/X86/X86ISelLowering.cpp
@@ -1632,10 +1632,11 @@ X86TargetLowering::X86TargetLowering(const X86TargetMachine &TM,
if (!Subtarget.is64Bit()) {
// These
2010 Jun 07
0
[LLVMdev] IntrinsicLowering and several related problems
Hi Hao Shen,
> 1. Why I can not get the type of CallInst *CI?
> !CI->getType()->isVoidTy() is not working and how to solve it?
what does "not working" mean? It should work.
> 2. Why Intrinsic::vastart and Intrinsic::powi are excluded from
> IntrinsicLowering function?
> There are no way to lower them at the byte-code level?
For vastart, it probably isn't
2019 Jun 10
2
Bug: Library functions for ISD::SRA, ISD::SHL, and ISD::SRL
LLVM appears to support Library functions for ISD::SRA ,ISD::SHL, and ISD::SRL, as they are properly defined in RuntimeLibCalls.def.
The library functions defined in RuntimeLibCalls.def (among others) are these:
HANDLE_LIBCALL(SRA_I16, "__ashrhi3")
HANDLE_LIBCALL(SRA_I32, "__ashrsi3")
HANDLE_LIBCALL(SRA_I64, "__ashrdi3")
However, setting
2012 Jan 07
2
[LLVMdev] libcalls for shifts
Hello,
my target has libcall support for long long shifts. I already have the
following lines in my Lowering constructor:
setLibcallName(RTLIB::SHL_I64, "__llshl");
setLibcallName(RTLIB::SRL_I64, "__llshru");
setLibcallName(RTLIB::SRA_I64, "__llshr");
and
setOperationAction(ISD::SHL, MVT::i64, Expand);
setOperationAction(ISD::SRA, MVT::i64,