[LLVMdev] Loads not hoisted out of the loop

Krzysztof Parzyszek kparzysz at codeaurora.org
Fri Jan 18 10:00:18 PST 2013


On 1/18/2013 11:34 AM, Hal Finkel wrote:
>
> I agree. FWIW, I'm currently working on making the LLVM-based Fortran compiler non-hypothetical, and so for several reasons, I'd like to have a solution to this. If we can't think of anything better, we could always fall back to the N^2 metadata solution (explicit mark as no-alias all pairs that don't alias), but I'd rather we come up with something else.

How about having Fortran-specific metadata, and a Fortran-specific alias 
analysis?  The metadata could indicate how the properties of the 
Fortran-frontend-generated types relate to the types that the IR code 
uses to load/store data.  For example:

f90_array_type = type { i32 size, double* data };
metadata = "attributes of f90_array_type, like restrict, should be 
applied to the member pointer 'data'"

Is this something you've considered?

-Krzysztof

-- 
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, 
hosted by The Linux Foundation



More information about the llvm-dev mailing list