From: Stepan D. <stp...@na...> - 2013-06-14 13:16:49
|
Hi Borja, All constraints are supported now. The new patch is attached. -- Added support for all documented constraints. -- Fixed tests as you mentioned. Relative to GPR8, Do we have some tests that check allocation order? If so, all of them were passed :-) Though I can use the explicit enumeration way you're currently using... -Stepan. Borja Ferrer wrote: > Ok, there are some small style issues but i will fix them after you can > commit (braces in AVRAsmPrinter::PrintAsmOperand), afterwards you may > check them for future reference. > > About the GPR8 replacement, I'm not sure now, but will it change the > register allocation order using the "sequence" set instruction? This was > changed some time ago so I dont remember what was the new behaviour. > In the test cases please add a CHECK line for the function name, check > the other test cases in the folder to see what i mean. > You may need to add inline asm support in clang aswell, there are some > methods that need to be implemented there inside the AVR classes, > probably for error reporting stuff. > > 1) I dont know of any compatible projects, sorry. I've tested big C > programs like a floating point emulation library. > 2) for now only the tests there. > 3) John please give Stepan commit access to SVN. > > Heh Eric, that's ok, for inline asm there's no room for optimizations > but for other compiler features sure :) > > > > > 2013/6/13 Stepan Dyatkovskiy <stp...@na... <mailto:stp...@na...>> > > Hi Borja, > This is today patch. > 1. Added and tested support for register constraints > (a,b,d,e,q,r,t,w,x,y,z,l). > 2. Refactored GPR8 registers class, added new registers classes: > lGPR8, hGPR8, simplehGPR8 and specialUpperGPR8. > 3. Fixed code-style. > > P.S.: In case you decided to give me commit access: > 1. Do you have some AVR projects that are compilable with avr-llvm? > I mean kind of llvm's test-suite replacement. > 2. What ought to be tested before commit, except the > "test/CodeGen/AVR" tests? > 3. My SourceForge account name is: "kaomoneus". > > -Stepan. > > Borja Ferrer wrote: > > The patch looks good, some comments about coding style. We use a > different standard compared to llvm's, most important things are: > 1) braces go into new lines. > 2) always place braces even if they're for a 1 line statement > > this: > + std::pair<unsigned, const TargetRegisterClass*> > + getRegForInlineAsmConstraint(__const std::string > &Constraint, > + EVT VT) const; > + > should be: > std::pair<unsigned, const TargetRegisterClass *> << space > between > name and * > getRegForInlineAsmConstraint(__const std::string &Constraint, > EVT VT) const; > > this: > + ConstraintWeight getSingleConstraintMatchWeight__( > + AsmOperandInfo &info, const char *constraint) const; > should be: > ConstraintWeight > getSingleConstraintMatchWeight__(AsmOperandInfo &info, > const char > *constraint) > const; > > > if there are any other small details i can fix them post commit. > > > > 2013/6/13 Borja Ferrer <bor...@gm... > <mailto:bor...@gm...> > <mailto:bor...@gm... <mailto:bor...@gm...>>__> > > > Nice Stepan, I will review your patch later on. You should > be given > commit access to this svn repo until we finally decide > where to move > on all of the code. > > > 2013/6/13 Stepan Dyatkovskiy <stp...@na... > <mailto:stp...@na...> > <mailto:stp...@na... <mailto:stp...@na...>>> > > > Hi all, > I'll use this reference for implementation, right? > http://savannah.nongnu.org/__download/avr-libc/avr-libc-__user-manual-1.8.0.pdf.bz2 > <http://savannah.nongnu.org/download/avr-libc/avr-libc-user-manual-1.8.0.pdf.bz2> > > -Stepan. > > Stepan Dyatkovskiy wrote: > > Ops. Forget to apply patch itself... > > > > -Stepan. > > > > Stepan Dyatkovskiy wrote: > >> Hi all. That's a Thursday patch with inline asm. > Currently > the only > >> constraint is supported: register ('r'). > >> > >> -Stepan. > >> > >> > > ------------------------------__------------------------------__------------------ > >> > >> This SF.net email is sponsored by Windows: > >> > >> Build for Windows Store. > >> > >> http://p.sf.net/sfu/windows-__dev2dev > <http://p.sf.net/sfu/windows-dev2dev> > >> _________________________________________________ > >> avr-llvm-devel mailing list > >> avr-llvm-devel@lists.__sourceforge.net > <mailto:avr...@li...> > <mailto:avr-llvm-devel@lists.__sourceforge.net > <mailto:avr...@li...>> > > >> > https://lists.sourceforge.net/__lists/listinfo/avr-llvm-devel > <https://lists.sourceforge.net/lists/listinfo/avr-llvm-devel> > >> > > > > > > > > > > ------------------------------__------------------------------__------------------ > > This SF.net email is sponsored by Windows: > > > > Build for Windows Store. > > > > http://p.sf.net/sfu/windows-__dev2dev > <http://p.sf.net/sfu/windows-dev2dev> > > > > > > > > _________________________________________________ > > avr-llvm-devel mailing list > > avr-llvm-devel@lists.__sourceforge.net > <mailto:avr...@li...> > <mailto:avr-llvm-devel@lists.__sourceforge.net > <mailto:avr...@li...>> > > > > https://lists.sourceforge.net/__lists/listinfo/avr-llvm-devel > <https://lists.sourceforge.net/lists/listinfo/avr-llvm-devel> > > > > > > ------------------------------__------------------------------__------------------ > This SF.net email is sponsored by Windows: > > Build for Windows Store. > > http://p.sf.net/sfu/windows-__dev2dev > <http://p.sf.net/sfu/windows-dev2dev> > _________________________________________________ > avr-llvm-devel mailing list > avr-llvm-devel@lists.__sourceforge.net > <mailto:avr...@li...> > <mailto:avr-llvm-devel@lists.__sourceforge.net > <mailto:avr...@li...>> > https://lists.sourceforge.net/__lists/listinfo/avr-llvm-devel > <https://lists.sourceforge.net/lists/listinfo/avr-llvm-devel> > > > > > |