diff options
author | Matthias Braun <matze@braunis.de> | 2023-06-05 15:15:01 -0700 |
---|---|---|
committer | Matthias Braun <matze@braunis.de> | 2023-06-26 13:50:36 -0700 |
commit | 02ba5b8c6b9f0c1ce6df421db5dd5eb307d7d27d (patch) | |
tree | 752ea7db9ee879f79ddd878cc7bbe6a5dff0750b /llvm/docs/CommandGuide | |
parent | 759b21762634b906ff545353deae47dfbfc45c0b (diff) | |
download | llvm-02ba5b8c6b9f0c1ce6df421db5dd5eb307d7d27d.zip llvm-02ba5b8c6b9f0c1ce6df421db5dd5eb307d7d27d.tar.gz llvm-02ba5b8c6b9f0c1ce6df421db5dd5eb307d7d27d.tar.bz2 |
Ignore load/store until stack address computation
No longer conservatively assume a load/store accesses the stack when we
can prove that we did not compute any stack-relative address up to this
point in the program.
We do this in a cheap not-quite-a-dataflow-analysis: Assume
`NoStackAddressUsed` when all predecessors of a block already guarantee
it. Process blocks in reverse post order to guarantee that except for
loop headers we have processed all predecessors of a block before
processing the block itself. For loops we accept the conservative answer
as they are unlikely to be shrink-wrappable anyway.
Differential Revision: https://reviews.llvm.org/D152213
Diffstat (limited to 'llvm/docs/CommandGuide')
0 files changed, 0 insertions, 0 deletions