search for: targetexternalsymbol

Displaying 16 results from an estimated 16 matches for "targetexternalsymbol".

2006 Oct 16
1
[LLVMdev] TargetExternalSymbol and TargetGlobalAddress
I have noticed that TargetGlobalAddress is generated for "source code" functions and TargetExternalSymbol is generated for builtins like __lshrdi3. What is the difference between TargetExternalSymbol and TargetGlobalAddress? Thanks, Rafael
2017 Feb 14
2
Ensuring chain dependencies with expansion to libcalls
...r:i64 %reg2, t4:1 t8: i64,ch,glue = CopyFromReg t6:1, Register:i64 %reg3, t6:1 t46: ch,glue = callseq_start t0, TargetConstant:i32<0> t47: ch,glue = CopyToReg t46, Register:i64 %reg0, t2 t48: ch,glue = CopyToReg t47, Register:i64 %reg1, t4, t47:1 t50: ch,glue = SHAVEISD::CALL t48, TargetExternalSymbol:i32'__divdi3', Register:i64 %reg0, Register:i64 %reg1, RegisterMask:Untyped, t48:1 t51: ch,glue = callseq_end t50, TargetConstant:i32<0>, TargetExternalSymbol:i32'__divdi3', t50:1 t52: i64,ch,glue = CopyFromReg t51, Register:i64 %reg0, t51:1 t11: ch = CopyToReg t0,...
2013 Mar 22
2
[LLVMdev] UNREACHABLE executed! error while trying to generate PTX
...nbody.kernel.cu -Xclang -fcuda-is-device -I/home/upitamba/llvm-3.2.src/tools/clang/test/SemaCUDA/ -Xclang -triple -Xclang nvptx64 -Xclang -target-cpu -Xclang sm_10 -S fatal error: error in backend: Cannot select: 0x334a870: v4f32 = NVPTXISD::MoveParam 0x334a770 [ORD=1] [ID=22] 0x334a770: v4f32 = TargetExternalSymbol'.PARAM0' [ID=1] In function: computeBodyAccel Am I doing anything wrong here ? Attached my new nbody.kernel.cu <http://llvm.1065342.n5.nabble.com/file/n56141/nbody.kernel.cu> .cu here -- View this message in context: http://llvm.1065342.n5.nabble.com/UNREACHABLE-executed-err...
2013 Mar 24
0
[LLVMdev] UNREACHABLE executed! error while trying to generate PTX
...a-is-device > -I/home/upitamba/llvm-3.2.src/tools/clang/test/SemaCUDA/ -Xclang -triple > -Xclang nvptx64 -Xclang -target-cpu -Xclang sm_10 -S > > fatal error: error in backend: Cannot select: 0x334a870: v4f32 = > NVPTXISD::MoveParam 0x334a770 [ORD=1] [ID=22] > 0x334a770: v4f32 = TargetExternalSymbol'.PARAM0' [ID=1] > In function: computeBodyAccel > > Am I doing anything wrong here ? > > Attached my new nbody.kernel.cu > <http://llvm.1065342.n5.nabble.com/file/n56141/nbody.kernel.cu> .cu here > > > > > > > -- > View this message in conte...
2020 Feb 22
2
COPYs between register classes
Hi, On SystemZ there are a set of "access registers" that can be copied in and out of 32-bit GPRs with special instructions. These instructions can only perform the copy using low 32-bit parts of the 64-bit GPRs. As reported and discussed at https://bugs.llvm.org/show_bug.cgi?id=44254, this is currently broken due to the fact that the default register class for 32-bit integers is
2013 Mar 21
0
[LLVMdev] UNREACHABLE executed! error while trying to generate PTX
Not really. Clang does not have a way to annotate device vs. kernel functions in C/C++ mode. You're probably better off trying to use OpenCL or CUDA mode in clang. In the clang unit tests, there is a cuda.h header that provides very basic support for these keywords: tests/SemaCUDA/cuda.h If you compile as CUDA (use .cu extension, or "-x cuda") and use this header, you will have
2013 Mar 20
2
[LLVMdev] UNREACHABLE executed! error while trying to generate PTX
Thanks a lot Justin, I will remove the toolkit header. Just one last question..(maybe ;) ) If I do away with toolkit headers it says unknown type name '__device__'. Does this function qualifier have an alternative ? or I can just do away with ? -- View this message in context: http://llvm.1065342.n5.nabble.com/UNREACHABLE-executed-error-while-trying-to-generate-PTX-tp56026p56093.html
2007 Sep 11
0
[LLVMdev] RFC: Tail call optimization X86
...tAddress = TailCall.getOperand(1); + SDOperand StackAdjustment = TailCall.getOperand(2); + assert ( ((TargetAddress.getOpcode() == ISD::Register && + cast<RegisterSDNode>(TargetAddress)->getReg() == X86::ECX) || + TargetAddress.getOpcode() == ISD::TargetExternalSymbol || + TargetAddress.getOpcode() == ISD::TargetGlobalAddress) && + "Expecting an global address, external symbol, or register"); + assert( StackAdjustment.getOpcode() == ISD::Constant && "Expecting a const value"); + // TODO: shou...
2010 Mar 31
0
[LLVMdev] [cfe-dev] Need help fixing 2.7 release blockers
...\home\Vincent\llvm-2.7\Release\bin\clang.exe File: X86ISelLowering.cpp, Line 2152 Expression: ((Callee.getOpcode() == ISD::Register && (cast<RegisterSDNode>(Callee)->getReg() == X86::EAX || cast<RegisterSDNode>(Callee)->getReg() == X86::R11)) || Callee.getOpcode() == ISD::TargetExternalSymbol || Callee.getOpcode() == ISD::TargetGlobalAddress) && "Expec clang: error: compiler command failed with exit code 3 (use -v to see invocation) I have attached the preprocessed file (gcc -save-temps) to reproduce. If you need more information, please let me know. -------------- n...
2007 Sep 06
2
[LLVMdev] RFC: Tail call optimization X86
Hi Evan, first off thanks to you and Chris for taking time. On 6 Sep 2007, at 00:57, Evan Cheng wrote: > We'd like to see tail call optimization to be similar to the target > independent lowering of ISD::CALL nodes. These are auto-generated > from ???CallingConv.td files. Some target specific details such as > function address register (ECX in your example) should be coded in
2007 Sep 11
2
[LLVMdev] RFC: Tail call optimization X86
...(1); > + SDOperand StackAdjustment = TailCall.getOperand(2); > + assert ( ((TargetAddress.getOpcode() == ISD::Register && > + cast<RegisterSDNode>(TargetAddress)->getReg() == > X86::ECX) || > + TargetAddress.getOpcode() == > ISD::TargetExternalSymbol || > + TargetAddress.getOpcode() == > ISD::TargetGlobalAddress) && > + "Expecting an global address, external symbol, or > register"); > + assert( StackAdjustment.getOpcode() == ISD::Constant && > "Expecting a const valu...
2008 Jul 03
2
[LLVMdev] Problems expanding fcmp to a libcall
...i32 = Register r3 0x9c08758: <multiple use> 0x9c087e0: <multiple use> 0x9c07388: <multiple use> 0x9c08758: <multiple use> 0x9c08818: ch,flag = CopyToReg 0x9c08758, 0x9c087e0, 0x9c07388, 0x9c08758:1 0x9c08818: <multiple use> 0x9c088a0: i32 = TargetExternalSymbol '__unorddf2' 0x9c085e8: <multiple use> 0x9c08690: <multiple use> 0x9c08720: <multiple use> 0x9c087e0: <multiple use> 0x9c08818: <multiple use> 0x9c088d8: ch,flag = BL 0x9c08818, 0x9c088a0, 0x9c085e8, 0x9c08690, 0x9c08720, 0x9c087e0, 0x9c0...
2007 Aug 08
2
[LLVMdev] Destination register needs to be valid after callee saved register restore when tail calling
Hello, Arnold. > with the sentence i tried to express the question whether there is a > way to persuade the code generator to use another register to load (or > move) the function pointer to (right before the callee saved register > restore) but thinking a little further that's nonsense. Why don't define some special op for callee address and custom lower it? I really
2008 Jul 02
0
[LLVMdev] Problems expanding fcmp to a libcall
On Jul 1, 2008, at 3:42 PM, Richard Osborne wrote: > Evan Cheng wrote: >> On Jun 25, 2008, at 5:13 AM, Richard Osborne wrote: >> >> >>> Evan Cheng wrote: >>> >>>> On Jun 23, 2008, at 5:35 AM, Richard Osborne wrote: >>>> >>>> >>>>> I'm trying to write a backend for a target with no hardware
2008 Jul 01
2
[LLVMdev] Problems expanding fcmp to a libcall
Evan Cheng wrote: > On Jun 25, 2008, at 5:13 AM, Richard Osborne wrote: > > >> Evan Cheng wrote: >> >>> On Jun 23, 2008, at 5:35 AM, Richard Osborne wrote: >>> >>> >>>> I'm trying to write a backend for a target with no hardware floating >>>> point support. I've added a single i32 register class. I'm
2015 Jan 11
3
[LLVMdev] [RFC] [PATCH] add tail call optimization to thumb1-only targets
...isTailCall + && IsR3UsedForArgumentPassing + && Subtarget->isThumb1Only() ) + CallAdressShallBeForcedToHardRegR12 = true; + } + // If the callee is a GlobalAddress/ExternalSymbol node (quite common, every // direct call is) turn it into a TargetGlobalAddress/TargetExternalSymbol // node so that legalize doesn't hack it. @@ -1679,10 +1699,12 @@ bool isLocalARMFunc = false; ARMFunctionInfo *AFI = MF.getInfo<ARMFunctionInfo>(); - if (EnableARMLongCalls) { + if (IsCallAddressMoveToRegisterRequired) { assert((Subtarget->isTargetWindows() || +...