[PATCH] D24104: Make GlobalsAA ignore dead constant expressions.

Friedman, Eli via llvm-commits llvm-commits at lists.llvm.org
Thu Sep 1 10:21:16 PDT 2016


On 8/31/2016 4:19 PM, Daniel Berlin wrote:
> In theory yes, in practice, it probably shouldn't.
>
> In particular, i would never expect *this* pass to modify the IR.
>
> Is there some reason things don't get cleaned up that means this pass 
> has to clean them up?

This isn't really modifying the IR: dead Constants aren't actually part 
of the IR in the sense that they're not relevant to the semantics of IR, 
and they're implicitly discarded if you dump the IR to a file.

Existing passes don't clean up dead Constants simply because it isn't 
convenient; the standard accessors for modifying and erasing 
instructions don't clean them up because it would lead to 
use-after-free, and passes generally don't clean them up because it 
would be mostly useless boilerplate.

I can come up with some other solution if you want to insist on the 
invariant that GlobalsAA isn't allowed to modify any data structure 
associated with the module, but I don't really see a need.

-Eli

-- 
Employee of Qualcomm Innovation Center, Inc.
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project



More information about the llvm-commits mailing list