search for: x86registerinfo

Displaying 20 results from an estimated 177 matches for "x86registerinfo".

2007 Feb 25
1
[LLVMdev] X86RegisterInfo.td
In the X86RegisterInfo.td file, RST is defined like this: // Floating point stack registers (these are not allocatable by the // register allocator - the floating point stackifier is responsible // for transforming FPn allocations to STn registers) def RST : RegisterClass<"X86", [f64], 32,...
2007 May 09
3
[LLVMdev] Compiling glibc on Linux
...to have working binaries, the libraries must be compiled with the new tool and have the same stack organization. Now that I cannot use llc, it seems that I have to modify llvm-gcc to have it generate code with the stack organization that I want. For X86 target I have particularly changed X86RegisterInfo::eliminateFrameIndex, X86RegisterInfo::emitPrologue and X86RegisterInfo::emitEpilogue in the llc source code. Can I find equivalent functions in the llvm-gcc source, so that I can implement the needed stack organization? Thank you, Babak On May 9, 2007, at 12:47 PM, Reid Spencer wrote: &gt...
2007 Jun 12
1
[LLVMdev] LLVM binaries for Windows and more
...al and Ada need those too. 2.) The version 2.0 of your source code does not compile with Microsoft Visual C++ 2005 Express Edition. (By the way, is it documented that I need Bison? I figured that out myself...): ------ Build started: Project: x86, Configuration: Release Win32 ------ Compiling... X86RegisterInfo.cpp ..\..\lib\Target\X86\X86RegisterInfo.cpp(1107) : warning C4244: 'argument' : conversion from 'uint64_t' to 'int', possible loss of data ..\..\lib\Target\X86\X86RegisterInfo.cpp(1127) : warning C4244: 'argument' : conversion from 'uint64_t' to 'int'...
2008 Apr 16
3
[LLVMdev] Being able to know the jitted code-size before emitting
...w if it's useful or not. But > perhaps we can default most targets to it? > > I prefer not giving a default implementation and aborting with a message that says the target did not implement it. This way we know why it's not working. Is it OK? >> // >> -unsigned X86RegisterInfo::getX86RegNum(unsigned RegNo) const { >> +unsigned X86RegisterInfo::getX86RegNum(unsigned RegNo) { >> > > What happened to "const"? > I made the function static. >> + unsigned Size = GetInstSizeWithDesc(*MI, &Desc, IsPIC, >> Is64BitMode);...
2010 Aug 03
3
[LLVMdev] Purpose of PROLOG_LABEL in function prologue?
I've been building/dumping some x86_64 code and I've noticed that each of the routines has 3 temporary symbols, à la: _main: pushq %rbp Ltmp18: movq %rsp, %rbp Ltmp19: subq $320, %rsp Ltmp20: movl %ecx, -276(%rbp) I've tracked them back to emitPrologue in X86RegisterInfo.cpp. I'm wonder what's their purpose? They're filling up my symbol table... Cameron Esfahani dirty at apple.com "All that is necessary for the triumph of evil is that good men do nothing." Edmund Burke
2004 Oct 12
2
[LLVMdev] GenRegisterInfo.h.inc
Hi all, I cannot figure out why is named GenRegisterInfo.h.inc and not GenRegisterInfo.inc ... Is it for a dependency problem? Back again to compilation problems under win32 with VC llvm\lib\Analysis\DataStructure\Local.cpp(628) : error C2105: '--' needs l-value the line is: Result.mergeWith(getValueDest(**--CS.arg_end())); Can I submit patches for mutate it in something like:
2004 Oct 12
0
[LLVMdev] GenRegisterInfo.h.inc
...igure out why is named GenRegisterInfo.h.inc and not > GenRegisterInfo.inc ... > Is it for a dependency problem? I'm not sure what you're saying here. In the X86 backend, for example, we generate both X86GenRegisterInfo.h.inc and X86GenRegisterInfo.inc. The former is #included into X86RegisterInfo.h and the latter is #included into X86RegisterInfo.cpp. Does this make sense? They are both correct. > Back again to compilation problems under win32 with VC > > llvm\lib\Analysis\DataStructure\Local.cpp(628) : error C2105: '--' needs > l-value > > the line is: > &gt...
2015 Aug 31
3
MCRegisterClass mandatory vs preferred alignment?
...as being the minimum legal alignment, but it appears to often be greater than this in practice. For instance, on x86 the alignment of %ymm0 is listed as 32, not 1. Does anyone know why this is? Additionally, where are these alignments actually defined? I don't seem them appearing in the X86RegisterInfo.td files as I would naively expect. The background for my question is that I'm looking into adding a function attribute which uses unaligned loads and stores for register spilling on x86 to avoid the need for dynamic frame realignment. (see the previous thread "Aligned vector spills a...
2009 Jul 24
2
[LLVMdev] Stack Management in LLVM
...all > > could LLVM do that for me, using the system stack, (not continuations with > malloc)?  Or am I barking up the wrong tree with this tool? Messing with the prologue and epilogue should be feasible, although you'll have to modify the code, and it's very platform-specific; see X86RegisterInfo::emitPrologue in lib/Target/X86/X86RegisterInfo.cpp in the source tree. -Eli
2013 Jul 26
4
[LLVMdev] Command line options being put in Target backend libraries
...inks with Target libraries and has a command line option that needs to be processed, the option in the Target libraries will get overridden. $ cd llvm/lib/Target $ grep 'cl::' */*.cpp --> produces lot of such occurences. For example :- libLLVMX86CodeGen.a contains libLLVMX86CodeGen.a:X86RegisterInfo.cpp.o:0000000000000080 b EnableBasePointer I think those command line options would need to be moved to the drivers that are using them, Isnt it ? Am I mistaken ? Thanks Shankar Easwaran -- Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by the Linux Foundation
2015 Aug 31
2
MCRegisterClass mandatory vs preferred alignment?
...015 03:59 PM, Matthias Braun wrote: > Looks to me like the alignment is specified in tablegen. From Target.td: > > class RegisterClass<string namespace, list<ValueType> regTypes, int alignment, > dag regList, RegAltNameIndex idx = NoRegAltName> > > X86RegisterInfo.td: > > def VR256 : RegisterClass<"X86", [v32i8, v16i16, v8i32, v4i64, v8f32, v4f64], > 256, (sequence "YMM%u", 0, 15)>; > def VR256X : RegisterClass<"X86", [v32i8, v16i16, v8i32, v4i64, v8f32, v4f64], >...
2020 Jan 09
2
Adding a clang commandline option to change backend behaviour
...ding an extern declaration to the corresponding header gives me more flexibility and allows me to invoke the option by using -mllvm. From my current understanding, adding a function attribute would not be sufficient, since I need to query the option unrelated to functions, e.g. as early as when the X86RegisterInfo constructor is called. As of now, I'm not aware of any mechanism within the codebase that would allow me to do so, but perhaps you can point out something. Thanks again Oskar > Aaron Smith <aaron.lee.smith at gmail.com> hat am 6. Januar 2020 um 23:06 geschrieben: > > > Def...
2008 Apr 16
0
[LLVMdev] Being able to know the jitted code-size before emitting
...rgets to it? >> >> > > I prefer not giving a default implementation and aborting with a > message > that says the target did not implement it. This way we know why it's > not > working. Is it OK? That's ok. > > >>> // >>> -unsigned X86RegisterInfo::getX86RegNum(unsigned RegNo) const { >>> +unsigned X86RegisterInfo::getX86RegNum(unsigned RegNo) { >>> >> >> What happened to "const"? >> > > I made the function static. Ok. > > >>> + unsigned Size = GetInstSizeWithDesc(*MI, &am...
2010 Aug 03
0
[LLVMdev] Purpose of PROLOG_LABEL in function prologue?
...g some x86_64 code and I've noticed that each of the routines has 3 temporary symbols, à la: > > _main: > pushq %rbp > Ltmp18: > movq %rsp, %rbp > Ltmp19: > subq $320, %rsp > Ltmp20: > movl %ecx, -276(%rbp) > > I've tracked them back to emitPrologue in X86RegisterInfo.cpp. I'm wonder what's their purpose? > > They're filling up my symbol table... EH ranges for unwind info. If you look later on in the file for the symbols you'll see them. -eric
2004 Oct 08
0
[LLVMdev] RE: MinGW Tablegen
...asmwriternum seems to be not supported... scons: Building targets ... d:/home/arathorn/sandbox/llvm/tblgen.exe -gen-asm-writer -asmwriternum=1 -I llvm\lib\Target\X86 -o tablegen_includes\X86GenIntelAsmWriter.inc llvm\lib\Target\X86\X86.td llvm\lib\Target\X86\X86InstrInfo.td llvm\lib\Target\X86\X86RegisterInfo.td llvm\lib\Target\Target.td d:/home/arathorn/sandbox/llvm/tblgen.exe: Unknown command line argument '-asmwriternum=1'. Try: 'd:/home/arathorn/sandbox/llvm/tblgen.exe --help' 2) related to previous problem? scons: Building targets ... d:/home/arathorn/sandbox/llvm/tblgen.exe -ge...
2008 Feb 09
1
[LLVMdev] exception handling broken on x86-64?
...s after printing "B". The generated > assembler code looks reasonable at a first glance, It shouldn't. At least all frame moves information is missing. > but something must be broken. Any ideas about how to debug this? I'd suggest to start with filling necessary bits in the X86RegisterInfo.cpp. This includes frame moves information and description of stack layout. Then you can proceed to x86-64-specific lowering of some important intrinsics. You can link your code with native g++ in order to use gcc-provided (and thus working) runtime. -- WBR, Anton Korobeynikov
2010 Aug 27
0
[LLVMdev] What does this error mean: psuedo instructions should be removed before code emission?
...lt;std::iterator<std::bidirectional_iterator_tag, llvm::MachineInstr, long int, llvm::MachineInstr*, llvm::MachineInstr&>> = {<No data fields>}, NodePtr = 0x4b69440}, DL={LineCol = 0, ScopeIdx = 0}, TID=@0x803a78940) at MachineInstrBuilder.h:183 #3 0x0000000803451825 in llvm::X86RegisterInfo::emitPrologue (this=0x1a96220, MF=@0x30eb000) at /tmp/llvm-svn/llvm/lib/Target/X86/X86RegisterInfo.cpp:1037 #4 0x0000000802cdf3e5 in llvm::PEI::insertPrologEpilogCode (this=0x3231900, Fn=@0x30eb000) at /tmp/llvm-svn/llvm/lib/CodeGen/PrologEpilogInserter.cpp:680 #5 0x0000000802cdcf04 in llvm::...
2010 Aug 27
2
[LLVMdev] What does this error mean: psuedo instructions should be removed before code emission?
...t;std::bidirectional_iterator_tag, llvm::MachineInstr, > long int, llvm::MachineInstr*, llvm::MachineInstr&>> = {<No data > fields>}, NodePtr = 0x4b69440}, DL={LineCol = 0, ScopeIdx = 0}, > TID=@0x803a78940) at MachineInstrBuilder.h:183 > #3 0x0000000803451825 in llvm::X86RegisterInfo::emitPrologue > (this=0x1a96220, MF=@0x30eb000) at > /tmp/llvm-svn/llvm/lib/Target/X86/X86RegisterInfo.cpp:1037 > #4 0x0000000802cdf3e5 in llvm::PEI::insertPrologEpilogCode > (this=0x3231900, Fn=@0x30eb000) at > /tmp/llvm-svn/llvm/lib/CodeGen/PrologEpilogInserter.cpp:680 > #5 0x...
2004 Oct 07
2
[LLVMdev] RE: MinGW Tablegen
Hi As requested from Paolo, I've sent him the tablegen tool. The tool is able to compile the td files (given in the makefile) on windows without any complaints. Henrik >From: Paolo Invernizzi <arathorn at fastwebnet.it> >Date: Thu, 7 Oct 2004 14:27:11 +0200 > >Hi Henrik, > >As you may remember, I'm trying to use the LLVM core tools under Visual >Studio.
2008 Apr 16
0
[LLVMdev] Being able to know the jitted code-size before emitting
...r. > - /// > - unsigned GetInstSize(MachineInstr *MI); > - > - /// GetFunctionSize - Returns the size of the specified > MachineFunction. > - /// > - unsigned GetFunctionSize(MachineFunction &MF); > - } > } > > #endif > Index: lib/Target/X86/X86RegisterInfo.cpp > =================================================================== > --- lib/Target/X86/X86RegisterInfo.cpp (revision 49716) > +++ lib/Target/X86/X86RegisterInfo.cpp (working copy) > @@ -84,7 +84,7 @@ > // getX86RegNum - This function maps LLVM register identifiers to > t...