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

John Thompson john.thompson.jtsoftware at gmail.com
Thu Oct 7 10:39:36 PDT 2010


Here's another incremental patch related to inline asm constraints,
summarized as follows:

1. Get more correct reading on the value types.  (See note below.)
2. Add remaining generic constraint letter support documented in gcc docs.
3. Add remaining X86 constraint letter support documented in gcc docs.
 4. Convert the weight type to an enum for easier manipulation.
5. Change the multi-alternatives array from a vector to a SmallVector.  (I
might look into changing other vector usages later.)

Regarding 1, there still is some overlap of the value type processing done
in both TargetLowering::ParseConstraints and
SelectionDAGBuilder::visitInlineAsm.  I'll address that once I'm sure the
ParseConstraints stuff is 100% correct.

Regarding 2 and 3 above, this was mainly only for the multiple-alternative
selection.  There might be additional stuff that some of the constraints
imply regarding register allocation and instruction selection, but I'm not
trying to tackle that at this point.  I tried to follow the weighting
semantics for the non-multiple-alternative constraint selection use
elsewhere in the SelectionDAG stuff, such as favoring generic registers over
specific.

I ran the gcc tests on a Linux-64 box, comparing with an unmodified version,
with no change in test results:

Current gcc tests with clang test run:

# of expected passes        29998
# of unexpected failures    9887
# of unexpected successes    29
# of expected failures        28
# of unresolved testcases    1450
# of untested testcases        273
# of unsupported tests        811
/home/john/llvm/Release+Asserts/bin/clang  version 2.9 (trunk 115906)

Original:

# of expected passes        29998
# of unexpected failures    9887
# of unexpected successes    29
# of expected failures        28
# of unresolved testcases    1450
# of untested testcases        273
# of unsupported tests        811
/home/john/llvm_org/Release+Asserts/bin/clang  version 2.9 (trunk 115906)

Diff:

1c1
< Test Run By john on Thu Oct  7 00:07:16 2010
---
> Test Run By john on Thu Oct  7 00:52:50 2010
42706c42706
< /home/john/llvm/Release+Asserts/bin/clang  version 2.9 (trunk 115906)
---
> /home/john/llvm_org/Release+Asserts/bin/clang  version 2.9 (trunk 115906)

May I check in this incremental step?

-John

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


More information about the llvm-commits mailing list