search for: externalsymbol

Displaying 20 results from an estimated 27 matches for "externalsymbol".

2009 Jan 28
2
[LLVMdev] AsmPrinter question
Hi All, I need to print some extra information about libcall names in assembly. Libcall names are managed as ExternalSymbols in LLVM. How do I access these ExternalSymbols from Asmprinter? AsmPrinter uses class Module that lists all the global variables (including extern variables) and functions (include extern functions). But it does not list any information about the libcalls (ExternalSymbols) generated dur...
2009 Jan 28
2
[LLVMdev] AsmPrinter question
...e MachineOperand.h. If a MachineOperand represents an external symbol, getSymbolName() returns a string. Evan On Jan 27, 2009, at 8:26 PM, Sachin.Punyani at microchip.com wrote: Hi All, I need to print some extra information about libcall names in assembly. Libcall names are managed as ExternalSymbols in LLVM. How do I access these ExternalSymbols from Asmprinter? AsmPrinter uses class Module that lists all the global variables (including extern variables) and functions (include extern functions). But it does not list any information about the libcalls (ExternalSymbols) generated durin...
2004 Jun 17
0
[LLVMdev] MachineOperand: GlobalAddress vs. ExternalSymbol
On Thu, 17 Jun 2004, Vladimir Prus wrote: > > Hi, > here I am again with "why is this so" kind of a question. Among different > types of MachineOperand there are MO_ExternalSymbol and MO_GlobalAddress. > > For MO_GlobalAddress, we can get usefull information from the getGlobal() > method, which returns GlobalValue*. Wouldn'it it be better is > MO_GlobalAddress be called MO_GlobalValue, for consistency? I think that it could be reasonable to make this change,...
2009 Jan 28
0
[LLVMdev] AsmPrinter question
...d.h. If a MachineOperand represents an external symbol, getSymbolName() returns a string. Evan On Jan 27, 2009, at 8:26 PM, Sachin.Punyani at microchip.com wrote: > Hi All, > > I need to print some extra information about libcall names in > assembly. Libcall names are managed as ExternalSymbols in LLVM. > > How do I access these ExternalSymbols from Asmprinter? > > AsmPrinter uses class Module that lists all the global variables > (including extern variables) and functions (include extern > functions). But it does not list any information about the libcalls > (...
2004 Jun 17
2
[LLVMdev] MachineOperand: GlobalAddress vs. ExternalSymbol
Hi, here I am again with "why is this so" kind of a question. Among different types of MachineOperand there are MO_ExternalSymbol and MO_GlobalAddress. For MO_GlobalAddress, we can get usefull information from the getGlobal() method, which returns GlobalValue*. Wouldn'it it be better is MO_GlobalAddress be called MO_GlobalValue, for consistency? Second, MO_ExternalSymbol is used for storing name of external variable/...
2009 Jan 29
0
[LLVMdev] AsmPrinter question
...nd represents an external > symbol, getSymbolName() returns a string. > > Evan > > On Jan 27, 2009, at 8:26 PM, Sachin.Punyani at microchip.com wrote: > Hi All, > > I need to print some extra information about libcall names in > assembly. Libcall names are managed as ExternalSymbols in LLVM. > > How do I access these ExternalSymbols from Asmprinter? > > AsmPrinter uses class Module that lists all the global variables > (including extern variables) and functions (include extern > functions). But it does not list any information about the libcalls > (...
2004 Jun 19
2
[LLVMdev] MachineOperand: GlobalAddress vs. ExternalSymbol
On Fri, 2004-06-18 at 10:13, Chris Lattner wrote: > Module::gbegin/gend iterate over the global variables, and ::begin/end > iterate over the functions, some of which may be prototypes. This confused Vladimir and I remember it confusing me when I was reviewing LLVM core a few months ago. Would it be worthwhile to consider naming these globals_begin/globals_end and
2004 Jun 19
0
[LLVMdev] MachineOperand: GlobalAddress vs. ExternalSymbol
On Fri, 18 Jun 2004, Reid Spencer wrote: > On Fri, 2004-06-18 at 10:13, Chris Lattner wrote: > > > Module::gbegin/gend iterate over the global variables, and ::begin/end > > iterate over the functions, some of which may be prototypes. > > This confused Vladimir and I remember it confusing me when I was > reviewing LLVM core a few months ago. Would it be worthwhile to
2004 Jun 19
1
[LLVMdev] MachineOperand: GlobalAddress vs. ExternalSymbol
sure, that's reasonable. I'll make the patch but later this weekend .. bigger fish to fry :) Reid. On Fri, 2004-06-18 at 22:44, Chris Lattner wrote: > On Fri, 18 Jun 2004, Reid Spencer wrote: > > On Fri, 2004-06-18 at 10:13, Chris Lattner wrote: > > > > > Module::gbegin/gend iterate over the global variables, and ::begin/end > > > iterate over the
2009 Jan 30
1
[LLVMdev] AsmPrinter question
...clarations that are parsed by clang make part of the FunctionList in Module. However the libcalls that are created during the lowering do not make part of this list. For example PIC16 does not support shift operation of 16 bits. For this LLVM generates the libcall. For creating such a call it uses ExternalSymbol and therefore it is not available in the FunctionList. I need to emit declaration for these libcalls. So FunctionList does not provide me the information. Is there any other way I can get the information of these libcalls in AsmPrinter? Regards Sachin > -bw > > On Jan 28, 2009, at 12:...
2004 Jun 18
3
[LLVMdev] MachineOperand: GlobalAddress vs. ExternalSymbol
Chris Lattner wrote: > > Second, MO_ExternalSymbol is used for storing name of external > > variable/function, right? Why it's not possible to use MO_GlobalAddress, > > where returned GlobalValue* has isExternal set to true? The > > GlobalValue::getName would return the name of the symbol. > > Using the GlobalValue is ce...
2004 Jun 19
1
[LLVMdev] MachineOperand: GlobalAddress vs. ExternalSymbol
Chris Lattner wrote: > > And why isn't it possible to just make those functions known to LLVM? > > After all, *I think*, if this function is to be called, it should be > > declared in assembler, and so you have to pass some information abou > > those function to the code printer. (Of course, it's possible to just > > directly print the declarations, but
2004 Jun 18
0
[LLVMdev] MachineOperand: GlobalAddress vs. ExternalSymbol
On Fri, 18 Jun 2004, Vladimir Prus wrote: > > actually exist in the LLVM module for the function. In particular, this > > would include any functions in a code-generator specific runtime library > > and malloc/free. The X86 code generator compiles floating point modulus > > into fmod calls, and 64-bit integer div/rem into runtime library calls. > > And why isn't
2012 Jul 25
2
[LLVMdev] Purpose of MSP430Wrapper
...for a 16 bit processor and modelling it around the (experimental) MSP430 back end. When reviewing MSP430InstrInfo.td I see def MSP430Wrapper : SDNode<"MSP430ISD::Wrapper", SDT_MSP430Wrapper>; and can see in MSP430ISelLowering.cpp that ISD::GlobalAddress: ISD::BlockAddress: ISD::ExternalSymbol all get lowered to MSP430ISD::Wrapper(address space) plus the wrapped address node. What has me mystified is that in some of the patterns in MSP430InstrInfo.td take the form def : Pat<(i16 (MSP430Wrapper tglobaladdr:$dst)), (MOV16ri tglobaladdr:$dst)>; and others ... def : Pat<(MSP...
2011 Mar 03
2
[LLVMdev] MachineOperand type
...2 different types of MachineOperand such as MO_Register, MO_Immediate and so on. Some of the names are self-explanatory such as MO_Register and MO_Immediate. Some of them are a little confusing such as MO_FrameIndex, MO_ConstantPoolIndex and so on. For example, what is the different between MO_ExternalSymbol and MO_GlobalAddress? Are these two types orthogonal? I found that memset and memcpy are MO_ExternalSymbol and printf and fprintf and so on are MO_GlobalAddress. Thanks a lot in advance. Any advice will be greatly appreciated. Bin
2012 Jul 25
0
[LLVMdev] Purpose of MSP430Wrapper
...e (experimental) MSP430 back end. > > When reviewing MSP430InstrInfo.td I see > > def MSP430Wrapper : SDNode<"MSP430ISD::Wrapper", SDT_MSP430Wrapper>; > > and can see in MSP430ISelLowering.cpp that > > ISD::GlobalAddress: > ISD::BlockAddress: > ISD::ExternalSymbol > > all get lowered to MSP430ISD::Wrapper(address space) plus the wrapped > address node. > > What has me mystified is that in some of the patterns in > MSP430InstrInfo.td take the form > > def : Pat<(i16 (MSP430Wrapper tglobaladdr:$dst)), (MOV16ri > tglobaladdr:...
2007 Aug 11
1
[LLVMdev] Tail call optimization deeds
...to register ECX if the tailcallee is in a register. (TODO: set ECX as live out?) TODO: check what to do with pic code Adds register arguments (EAX, EDX) as live in if they are used for arguments. Create a TAILCALL node (a pseudo instruction) holding the Callee (Register or TargetGlobalAddress/ExternalSymbol), the stack adjustment as a constant, and the live-in registers. The TargetLowering class has a IsLastCallTailCall state field which is set to true such that the LowerRET function nows it has to produce different code. The TAILCALL node is then returned. If it is not okay the code produces...
2008 Jul 03
2
[LLVMdev] Problems expanding fcmp to a libcall
...ent 0x97a43e0, 0x97a41a0 0x97a3d30: ch = ArgFlags < zext orig-align:8 > 0x97a3d68: ch = ArgFlags < zext orig-align:1 > 0x97a3c78: <multiple use> 0x97a41a0: <multiple use> 0x97a41a0: <multiple use> 0x97a41a0: <multiple use> 0x97a4168: i32 = ExternalSymbol '__unorddf2' 0x97a3cd8: <multiple use> 0x97a3d30: <multiple use> 0x97a4428: <multiple use> 0x97a3d68: <multiple use> 0x97a3cd8: <multiple use> 0x97a3d30: <multiple use> 0x97a4428: <multiple use> 0x97a3d68: <multipl...
2011 Mar 03
0
[LLVMdev] MachineOperand type
On Mar 3, 2011, at 2:30 PM, Bin Zeng wrote: >>> >>> Thanks a lot in advance. Any advice will be greatly appreciated. >> GlobalAddress is used to refer to something that exists in IR, such as a global variable. ExternalSymbol is used to refer to something that isn't in the IR because it was synthesized by codegen, such as __addsi3. >> >> -Chris > > Thanks for the quick reply. According to your reply, memset and memcpy are synthesized by codegen? I saw memcpy in the source file. Did it get optimiz...
2012 Jul 25
0
[LLVMdev] Purpose of (XXX)Wrapper
...for a 16 bit processor and modelling it around the (experimental) MSP430 back end. When reviewing MSP430InstrInfo.td I see def MSP430Wrapper : SDNode<"MSP430ISD::Wrapper", SDT_MSP430Wrapper>; and can see in MSP430ISelLowering.cpp that ISD::GlobalAddress: ISD::BlockAddress: ISD::ExternalSymbol all get lowered to MSP430ISD::Wrapper(address base) plus the wrapped address node. What has me mystified is that in some of the patterns in MSP430InstrInfo.td take the form def : Pat<(i16 (MSP430Wrapper tglobaladdr:$dst)), (MOV16ri tglobaladdr:$dst)>; and others ... def : Pat<(MSP430c...