teresajohnson wrote:

> > I had that thought, but the current control is pretty much this, which 
> > means that adding a module flag would require some more invasive changes to 
> > how the pass functions because this level of config doesn't touch IR at 
> > all. I can try to add a function level attribute or similar for it and make 
> > the pass exit early if you think that's cleaner.
> 
> This is a _much_ larger change that should not be done in isolation for this 
> one flag, and would need a fleshed out design and RFC. I do not think pass 
> configuration belongs in the program

Yeah, an attribute is better than a module flag. We have some other examples 
that have gone this route...can dig them up if requested. The other reason is 
compatibility with non-LTO builds. I.e. a non-lto build like:

clang++ -c -fno-slp-vectorize *.cc
clang++ *.o

works the same wrt slp vectorization if you add -flto.

I'm not 100% opposed to adding the flag, but it gets messy if we have to add 
all of them to lld and the lld driver in clang.

https://github.com/llvm/llvm-project/pull/201585
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to