[PATCH] D82317: [Clang/Test]: Update tests where `noundef` attribute is necessary

Juneyoung Lee via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Thu Nov 5 06:11:22 PST 2020


aqjune added a comment.
Herald added a subscriber: frasercrmck.

In D82317#2201215 <https://reviews.llvm.org/D82317#2201215>, @rjmccall wrote:

> second, it's yet another contribution towards the giant pile of attributes that seem to have become necessary to do any work in LLVM

I don't think this is true. There are a few optimizations disabled (either fully or conditionally) because it is incorrect when its input is undefined (D85765 <https://reviews.llvm.org/D85765>, D85684 <https://reviews.llvm.org/D85684>, a few optimizations in SimplifyCFG). There are even optimizations that are incorrect w.r.t. undef but still running simply because removing all of them isn't practical.
Giving a guarantee that a value is well defined is very helpful because these optimizations can be revived.
Currently, there is no such guarantee in function boundaries because it is legal to pass undef to a function argument. This explains dead argument elimination and function outlining (which may introduce fn call with undef).


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D82317/new/

https://reviews.llvm.org/D82317



More information about the cfe-commits mailing list