[llvm] 61d4b34 - [test][NewPM] Make dead-uses.ll work under NPM

Arthur Eubanks via llvm-commits llvm-commits at lists.llvm.org
Tue Oct 6 07:35:28 PDT 2020


Author: Arthur Eubanks
Date: 2020-10-06T07:33:02-07:00
New Revision: 61d4b342d15a82d5e841d9e72a52d77eaa5b5097

URL: https://github.com/llvm/llvm-project/commit/61d4b342d15a82d5e841d9e72a52d77eaa5b5097
DIFF: https://github.com/llvm/llvm-project/commit/61d4b342d15a82d5e841d9e72a52d77eaa5b5097.diff

LOG: [test][NewPM] Make dead-uses.ll work under NPM

This one is weird...

globals-aa needs to be already computed at licm, or else a function pass
can't run a module analysis and won't have access to globals-aa.
But the globals-aa result is impacted by instcombine in a way that
affects what the test is expecting. If globals-aa is computed before
instcombine, it is cached and globals-aa used in licm won't contain the
necessary info provided by instcombine.
Another catch is that if we don't invalidate AAManager, it will use the
cached AAManager that instcombine requested, which may not contain
globals-aa. So we have to invalidate<aa> so that licm can recompute
an AAManager with the globals-aa created by the require<globals-aa>.

This is essentially the problem described in https://reviews.llvm.org/D84259.

Reviewed By: asbirlea

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

Added: 
    

Modified: 
    llvm/test/Analysis/GlobalsModRef/dead-uses.ll

Removed: 
    


################################################################################
diff  --git a/llvm/test/Analysis/GlobalsModRef/dead-uses.ll b/llvm/test/Analysis/GlobalsModRef/dead-uses.ll
index a96655d48bfd..3657e880007c 100644
--- a/llvm/test/Analysis/GlobalsModRef/dead-uses.ll
+++ b/llvm/test/Analysis/GlobalsModRef/dead-uses.ll
@@ -1,4 +1,5 @@
-; RUN: opt < %s -instcombine -globals-aa -licm -S | FileCheck %s
+; RUN: opt < %s -instcombine -globals-aa -licm -enable-new-pm=0 -S | FileCheck %s
+; RUN: opt < %s -aa-pipeline=basic-aa,globals-aa -passes='function(instcombine),require<globals-aa>,function(invalidate<aa>,loop(licm))' -S | FileCheck %s
 
 ; Make sure -globals-aa ignores dead uses of globals.
 


        


More information about the llvm-commits mailing list