How to prevent optimizer from reordering stuff?
Dan Olson via digitalmars-d-ldc
digitalmars-d-ldc at puremagic.com
Sun Mar 15 18:39:16 PDT 2015
David Nadlinger via digitalmars-d-ldc <digitalmars-d-ldc at puremagic.com> writes:
> Hi Dan,
>
> On 03/14/2015 09:20 PM, Dan Olson via digitalmars-d-ldc wrote:
>> I don't see any attributes for for that function. I will just paste
>> some of the -output-ll results since nothing sticks out to me.
>
> Yeah, seems like everything is in order (no pun intended) after the
> main IR-level optimizer. This suggests that the reordering happens on
> the target-specific optimization or instruction selection level. I
> suppose you could try disabling codegen optimizations if you wanted to
> investigate this further.
It is a good puzzle. For what it is worth, clang does the same thing
with similar code.
>> Maybe that means the compiler can says FPSCR state from my vdiv.f64
>> is undefined across function call boundaries, so ordering should not
>> matter?
>
> This seems like a reasonable guess. Did you try asking on the LLVM IRC
> channel or mailing list? Depending on the outcome (i.e. if the ABI is
> really to be interpreted that way), we should probably discuss its
> implications for D's FP handling strategy on the main D mailing lists.
I have not asked elsewhere yet. I'm going to explore the problem a bit
more, then ask.
More information about the digitalmars-d-ldc
mailing list