[llvm-commits] [PATCH] Inline asm mult-alt constraint selection - incremental change 2

John Thompson john.thompson.jtsoftware at gmail.com
Tue Oct 12 16:31:23 PDT 2010


Sorry, I think I confused C_Register and C_RegisterClass in my additions to
TargetLowering::getConstraintType.  The enclosed patch reflects the fix in
that function.  I'm currently rerunning the tests.

Question #1: In developing some new tests for constraints, I see that the
following generic constraints are not supported in the lowering operation:
E, F, p
x86 is missing: L, M, G, C
And the following I don't know how to test yet, since I don't know how to
represent the operand in C, and probably are missing too:  f, t, u, y, x, Y
Should I be concerned about these?  My original intent was just to put in
multi-alt selection logic.  The lowering stuff is probably a bit beyond me
right now, so unless I learn more about it, I'm thinking to leave these
alone for now and move on to the multi-alt selection for the other
platform-specific constraints.

Y has an additional problem in that it's a multi-character contraint, and
the original constraint parsing into individual contraints is done in
generic code, and thus won't know about these cases.  A simple work-around
might be to translate these on the Clang/gcc side to single letters.
Otherwise I need some way to get the target stuff down there.

Question #2:  With respect to the multi-alt selection support for the
generic and x86 constraints I've done so far, can someone tell me if I'm
doing the right thing?  If so, adding the support for the other platforms is
probably reasonably straight forward, using the x86 stuff as a model.  But
it would be nice to know if I'm on the right track before I continue on to
the other platforms.

-John
On Tue, Oct 12, 2010 at 10:58 AM, John Thompson <
john.thompson.jtsoftware at gmail.com> wrote:

> Thanks for catching this.  I'll add a check for tabs and line endings as
> part of my submission procedure.  I've enclosed an updated patch.
>
> May I check this in?
>
> -John
>
>   On Tue, Oct 12, 2010 at 1:32 AM, Frits van Bommel <fvbommel at gmail.com>wrote:
>
>> On Tue, Oct 12, 2010 at 2:16 AM, John Thompson
>> <john.thompson.jtsoftware at gmail.com> wrote:
>> > Here's an updated patch with some more revisions, adding some missing
>> stuff
>> > I found while developing new tests for the new stuff.  Still lacking is
>> that
>> > I also see that the "lowering" operation is missing support for some of
>> the
>> > x86 constraints I added, which I'll work on next, as well as
>> submitting the
>> > new tests for this stuff.  But may I check in the current changes, so as
>> not
>> > to diverge too much from the trunk?  I've successfully run the
>> regression
>> > tests, test-suite, and the gcc tests with Clang on Linux 64-bit with the
>> > current changes.
>>
>> You have hard tabs inside "enum ConstraintWeight" (in
>> TargetLowering.h, at the top of the patch).
>>
>
>
>
>  --
> John Thompson
> John.Thompson.JTSoftware at gmail.com
>
>


-- 
John Thompson
John.Thompson.JTSoftware at gmail.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20101012/3bf7a1e9/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: llvmmultalt13.patch
Type: application/octet-stream
Size: 16246 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20101012/3bf7a1e9/attachment.obj>


More information about the llvm-commits mailing list