[PATCH][FastISel] Let the target decide first if it wants to materialize a constant.

Juergen Ributzka juergen at apple.com
Thu Aug 14 10:13:58 PDT 2014


Dang, that might have been the other commit I made after this to extend the addressing modes for AArch64.
Let me revert that commit first. How long will it take to see the results of the revert?

Cheers,
Juergen

On Aug 14, 2014, at 9:53 AM, Chad Rosier <mcrosier at codeaurora.org> wrote:

> Juergen,
> Also, I'm seeing a large number of spec2K and spec2K6 failures after this
> flurry of commits.  I'm not exactly sure which one to blame, but we should
> consider reverting to fix the nightlies as well as allow for proper
> review.
> 
> Chad
> 
>> So, this was in my list of things to look at but it seems like you
>> went ahead and committed it without actually waiting for feedback?
>> 
>> -eric
>> 
>> On Tue, Aug 12, 2014 at 9:23 AM, Juergen Ributzka <juergen at apple.com>
>> wrote:
>>> ping :D
>>> 
>>> On Aug 7, 2014, at 2:51 PM, Juergen Ributzka <juergen at apple.com> wrote:
>>> 
>>>> Hi @ll,
>>>> 
>>>> I want to change the order in which FastISel tries to materialize a
>>>> constant.
>>>> 
>>>> Originally it would try to use a simple target-independent approach,
>>>> which can lead to the generation of inefficient code.
>>>> 
>>>> On X86 this would result in the use of movabsq to materialize any 64bit
>>>> integer constant - even for simple and small values such as 0 and 1.
>>>> Also
>>>> some very funny floating-point materialization could be observed too.
>>>> 
>>>> On AArch64 it would materialize the constant 0 in a register even the
>>>> architecture has an actual "zero" register.
>>>> 
>>>> On ARM it would generate unnecessary mov instructions or not use mvn,
>>>> etc
>>>> 
>>>> I want to simply change the order and always asks the target first if
>>>> it likes to materialize the constant. The patches a pretty simple and
>>>> straight forward, but since it changes the way how FastISel works with
>>>> respect to constants I wanted everyone affected by it to have at least
>>>> a quick look first.
>>>> 
>>>> Thanks
>>>> 
>>>> Cheers,
>>>> Juergen
>>>> 
>>>> <0001-FastISel-AArch64-Cleanup-constant-materialization-co.patch><0002-FastISel-ARM-Fix-a-bug-in-the-integer-materializatio.patch><0003-FastISel-ARM-Use-MOVT-MOVW-if-the-subtarget-requests.patch><0004-FastISel-X86-Refactor-constant-materialization.-NFCI.patch><0005-FastISel-Let-the-target-decide-first-if-it-wants-to-.patch><0006-FastISel-AArch64-Make-use-of-the-zero-register-when-.patch><0007-FastISel-X86-Emit-more-efficient-instructions-for-in.patch><0008-FastISel-X86-Use-XOR-to-materialize-the-0-value.patch>
>>> 
>> 
> 
> 
> -- 
> Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
> hosted by The Linux Foundation
> 




More information about the llvm-commits mailing list