May I check this in?

On Wed, Aug 4, 2010 at 12:06 PM, John Thompson <
[email protected]> wrote:

> To try and find out what the LLVM backend does with constraints I traced
> both llvm-as and llc in a debugger, following an inline asm statement.  It
> appears that the constraints get passed effectively unchanged through
> llvm-asm, and that in llc, the ChooseConstraint function in
> CodeGen/SelectionDAG/TargetLowering.cpp is a key part of the handling.  It
> appears that ChooseConstraint already has support for selecting from
> multiple contraints to some extent, and that it expects them to be
> concatenated without the comma and other modifiers, and looks at them
> character by character for a given constraint string.  There's not much
> support for architecture-specific constraints, but it does seem to try to
> select from between at least 'r' and 'm'.
> Therefore, it seems that the first step to the solution is to get Clang to
> output multiple alternative constraints in the form that llc expects.  The
> enclosed patch does this by removing the commas and modifiers not currently
> supported in LLVM, and also removing duplicate alternative constraints on a
> per-constraint string basis.  I've also added a minimal test to one of the
> asm test files.
>
> The next steps would be to start adding support for all the constraint
> letters, both the generic and architecture-specific ones that make sense,
> but I'll probably leave that until after my work on the front end issues I'm
> encountering while compiling a PS3 game, or even better, to others
> specializing on the back-end targets.
>
> I know that inline asm is a problematic bit of legacy, but it's pretty
> important for clients like Sony that have huge existing code bases they want
> to run through Clang code analysis, and eventually even production building.
>
> Thanks.
>
> -John
>
> --
> John Thompson
> [email protected]
>
>


-- 
John Thompson
[email protected]
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to