[LLVMdev] Unnecessary moves after sign-extension in 2-address target
Greg McGary
greg at mcgary.org
Wed Apr 22 08:58:29 PDT 2009
Evan Cheng wrote:
>
>> The copies are necessary because TwoAddressInstructionPass commutes
>> the second add. When I suppress the commute, the movs disappear and
>> the code became optimal. It seems the two-address commuter is
>> either buggy
>> or inherently short-sighted/simple-minded and paints itself into a
>> corner.
>>
>> How do you recommend I approach this problem?
>>
>
> You can try to identify the problem in 2addr pass and try to provide
> us with a patch. Or file a bugzilla with a reproducible test case.
>
OK. I was really fishing for strategic direction: e.g., caveats with
the heuristics/algorithms
we use now. Of course, if such existed, I expect it would be present as
comments, so it was
probably too much to hope for... I'll see if I can get the x86 target
to trip on this bug. My
new port won't be suitable for a bug report, since it's an odd-ball
proprietary CPU that will
probably never be distributed outside the company.
G
More information about the llvm-dev
mailing list