[LLVMdev] MergeConsecutiveStores for FP types

Hal Finkel hfinkel at anl.gov
Sat May 23 12:50:51 PDT 2015


----- Original Message -----
> From: "Matt Arsenault" <arsenm2 at gmail.com>
> To: "llvmdev" <llvmdev at cs.uiuc.edu>
> Sent: Saturday, May 23, 2015 2:43:00 PM
> Subject: [LLVMdev] MergeConsecutiveStores for FP types
> 
> Hi,
> 
> I’m trying to fix MergeConsecutiveStores for FP immediates. Currently
> it doesn’t really work because of an ordering problem, since this
> combine is only enabled for the first run of DAGCombiner before
> types are legal, with a comment that this is to avoid running it on
> every iteration presumably for compile time reasons.

I recommend taking compile-time measurements with it running in every iteration so that we can see what the actual cost is.

 -Hal

> 
> When storing an FP constant, visitSTORE replaces this with a store of
> an integer instead. This won’t necessarily have happened for all
> stores on the chain before MergeConsecutiveStores eventually decides
> to merge them all. MergeConsecutiveStores then sees stores of
> different types, and won’t merge them.
> 
> If I allow MergeConsecutiveStores to run for every DAG combine phase,
> it successfully merges all of the stores in my simple test cases in
> the second iteration. I’m not sure what the best solution to fix
> this is. Would it be acceptable to just allow MergeConsecutiveStores
> combine to run another time after the DAG is legalized? Running it
> again after legalize would also help with the non-constant cases
> after all FP stores have been promoted to integers (on R600).
> Alternatively, would it be better to try to have
> MergeConsecutiveStores do the store type replacement when it sees
> another store of ConstantFP, or somehow change the worklist order?
> 
> Another option I considered was to delay the store type replacement,
> but this just reveals the code in MergeConsecutiveStores to handle
> FP constant stores is actually broken (although trivially fixable).
> I also don’t really want this, since I would like stores of mixed
> types to be merged.
> 
> -Matt
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
> 

-- 
Hal Finkel
Assistant Computational Scientist
Leadership Computing Facility
Argonne National Laboratory




More information about the llvm-dev mailing list