search for: genregisterinfo

Displaying 14 results from an estimated 14 matches for "genregisterinfo".

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 submi...
2004 Oct 12
0
[LLVMdev] GenRegisterInfo.h.inc
On Tue, 12 Oct 2004, Paolo Invernizzi wrote: > Hi all, > I cannot figure 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 #i...
2012 Apr 22
0
[LLVMdev] FYI: Removal of XXXRegisterClass from GenRegisterInfo.inc
In r155270, I removed code from TableGen that emitted XXXRegisterClass into GenRegisterInfo.inc. This value was just a const pointer to XXXRegClass. So all places that used XXXRegisterClass should be changed to &XXXRegisterClass. I already did the conversion for all targets in the tree so this is a notice to out of tree targets. One of the most common place you might find this is set...
2011 Sep 06
3
[LLVMdev] bug in TableGen when generating RegisterInfo?
Hi everyone, I found some peculiar behavior of TableGen when generating [TARGET]GenRegisterInfo.inc. Some register overlaps are generated twice in this file, leading to a compilation error. I think this is because in RegisterInfoEmitter.cpp, RegisterAliases are declared as "std::map<Record*, std::set<Record*>, LessRecord>" and a requirement for std::map is that the comp...
2008 Jan 03
2
[LLVMdev] Building LLVM on Windows
...sterNames.inc.tmp): \ $(ObjDir)/%GenRegisterNames.inc.tmp : %.td $(ObjDir)/.dir $(Echo) "Building $(<F) register names with tblgen" - $(Verb) $(TableGen) -gen-register-enums -o $@ $< + $(Verb) $(TableGen) -gen-register-enums -o $(call SYSPATH, $@) $< $(TARGET:%=$(ObjDir)/%GenRegisterInfo.h.inc.tmp): \ $(ObjDir)/%GenRegisterInfo.h.inc.tmp : %.td $(ObjDir)/.dir $(Echo) "Building $(<F) register information header with tblgen" - $(Verb) $(TableGen) -gen-register-desc-header -o $@ $< + $(Verb) $(TableGen) -gen-register-desc-header -o $(call SYSPATH, $@) $< $(T...
2011 Sep 07
0
[LLVMdev] bug in TableGen when generating RegisterInfo?
On Tue, Sep 6, 2011 at 9:34 PM, Alexandru Dura <alexdura at gmail.com> wrote: > Hi everyone, > > I found some peculiar behavior of TableGen when generating > [TARGET]GenRegisterInfo.inc. Some register overlaps are generated twice in > this file, leading to a compilation error. Hi, What do you mean "overlapped register"? > I think this is because in RegisterInfoEmitter.cpp, RegisterAliases are > declared as "std::map<Record*, std::set<Record*...
2015 Sep 17
2
Register Number
...s like d0 is always 14! > I check it with ARMGenAsmMatcher.inc it was the same! > How is it possible? because it should give the same register value that > matches the underlying platform not any autogenerated value!? The returned number is the register id as defined in <YourTarget>GenRegisterInfo.inc. These numbers don't have any meaning other than to represent a particular register. The 0x01 would be the encoding used in generating the binary. The D0 has id 14 on ARM because there are 13 other registers preceding it: namespace ARM { enum { NoRegister, APSR = 1, APSR_NZCV...
2015 Sep 17
2
Register Number
Dear all, in my TestRegisterInfo.td file, I defined a register like this: class TestReg<bits<6> enc, string name> : Register<name> { let HWEncoding{5-0} = enc; let Namespace = "TEST"; } def D0 : TestReg<0x01, "d0">, DwarfRegNum<[1]>; but when I compile, the result I have in TestGenAsmMatcher.inc is this: case 'd': // 7
2014 Mar 28
9
[LLVMdev] Named Register Implementation
...be better to use metadata or some other way. Is that a reasonable expectation of the implementation? Now, onto specifics... 1. RegisterByName I couldn't find a way to get a register by name. I could teach the TableGen backend to print an additional table with a StringSwitch on <Target>GenRegisterInfo.inc and add a method getRegisterByName(char *), but that would expose a huge number of unwanted register classes which could open a huge can of worms. My idea was to be very specific and let the implementation local as <Target>RegisterInfo::getNamedRegister(char *) which will be *just* for n...
2006 Oct 10
0
[LLVMdev] FP emulation
...nteger register set explicitly. I thought that aliases are transitive? > Or do I have to mention all aliases explicitly, e.g. for %d0 I need to > say [%s0,%s1,%GR0,%GR1]? Depending on how you defined the aliases, they aren't necessarily transitive. I'd like at the <yourtarget>GenRegisterInfo.inc file, and see what it lists as the aliases for each reg. > But a more interesting question is this: The scheme above assumes that > there is a "hardwired" mapping between FP registers and concerete pairs > of integer registers. In many cases this is enough, since the emul...
2005 May 19
3
[LLVMdev] [Cygwin] llvm 'make install' build errors
Reid, I think it is the first time it is run that the errors occcur !? Not sure but that would seem logical. Aaron
2006 Oct 11
5
[LLVMdev] FP emulation
...hought that aliases are > transitive? > > Or do I have to mention all aliases explicitly, e.g. for %d0 I need > to > > say [%s0,%s1,%GR0,%GR1]? > > Depending on how you defined the aliases, they aren't necessarily > transitive. I'd like at the <yourtarget>GenRegisterInfo.inc file, > and see > what it lists as the aliases for each reg. Done. And I looked into the tblgen code. Tarnsitivity is not ensured by tblgen in any form, since it does not compute it. What it ensures is the commutativity of aliases, i.e. if A aliases B, then B aliases A. I think it would...
2006 Oct 10
4
[LLVMdev] FP emulation
Hi, >> My target supports only f64 at the moment. >> Question: How can I tell LLVM that float is the same as double on my >> target? May be by assigning the same register class to both MVT::f32 ?> and MVT::f64? >Just don't assign a register class for the f32 type. This is what the >X86 backend does when it is in "floating point stack mode". This will
2006 Oct 16
0
[LLVMdev] FP emulation
...ntion representation. This will let you define stuff like: void foo() __attribute__(((mycall))) { } You can then use a #define to hide the attribute syntax. >> Depending on how you defined the aliases, they aren't necessarily >> transitive. I'd like at the <yourtarget>GenRegisterInfo.inc file, >> and see >> what it lists as the aliases for each reg. > > Done. And I looked into the tblgen code. Tarnsitivity is not ensured by > tblgen in any form, since it does not compute it. What it ensures is > the commutativity of aliases, i.e. if A aliases B, then B a...