search for: registeraliases

Displaying 4 results from an estimated 4 matches for "registeraliases".

2011 Sep 30
3
[LLVMdev] Tablegen: RegisterInfoEmitter.cpp
Hi, I just bumped into a bug in this code. The problem was as follows: I have defined a set of registers with rather similar names including digits. The code section at RegisterInfoEmitter::run(){ ... // Process sub-register sets. runs and fills the RegisterAliases map. then, ... for (unsigned i = 0, e = Regs.size(); i != e; ++i) { RegNo[Regs[i].TheDef] = i; NumAliases += RegisterAliases[Regs[i].TheDef].size(); } runs. Only, now there are duplicates in the RegisterAliases map for the same Regs[i]-Record. This lead to duplicate output of the REG_O...
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 comparison function ("LessRecord") should correspond to a strict weak ordering; in this case this points to : "StringRef1.compare_numeric(StringRef...
2004 Sep 14
0
[LLVMdev] TableGen target description file change
...uted by Jason Eckhardt) that makes the following changes: 1. The 'Register' tablegen class now requires a register name to be specified as an argument for the register. If you had this: def FP0 : Register; before, change it to: def FP0 : Register<"FP0">; 2. The RegisterAliases tablegen class is now gone. Instead, alias lists are encoded directly into the Register class, through the use of the RegisterGroup class. In the X86 backend, we used to have: def AL : Register; ... def : RegisterAliases<AL, [AX, EAX]>; Now you can just define: def AL : RegisterGrou...
2011 Sep 07
0
[LLVMdev] bug in TableGen when generating RegisterInfo?
...und 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*>, LessRecord>" > > and a requirement for std::map is that the comparison function > ("LessRecord") should correspond to a strict weak ordering; in this case > this points to : > > "Str...