HomePhabricator

[Attributor] Liveness for values

Authored by jdoerfert on Oct 13 2019, 1:08 AM.

Description

[Attributor] Liveness for values

Summary:
This patch introduces liveness (AAIsDead) for all positions, thus for
all kinds of values. For now, we say an instruction is dead if it would
be removed assuming all users are dead. A call site return is different
as we just look at the users. If all call site returns have been
eliminated, the return values can return undef instead of their original
value, eliminating uses.

We try to recursively delete dead instructions now and we introduce a
simple check interface for use-traversal.

This is the idea tried out in D68626 but implemented in the right way.

Reviewers: uenoku, sstefan1

Subscribers: hiraditya, bollu, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D68925

Details

Committed
jdoerfertOct 30 2019, 10:16 PM
Differential Revision
D68925: [Attributor] Liveness for values
Parents
rG5e442a51bce7: [Attributor][NFC] Do not delete dead blocks but "clear" them
Branches
Unknown
Tags
Unknown