[llvm] 15474d7 - [SVE][CodeGen] Replace use of TypeSize operator< in GlobalMerge::doMerge

David Sherwood via llvm-commits llvm-commits at lists.llvm.org
Thu Oct 1 06:07:15 PDT 2020


Author: David Sherwood
Date: 2020-10-01T14:06:59+01:00
New Revision: 15474d769110139f9cc96d42434988d7aaa77634

URL: https://github.com/llvm/llvm-project/commit/15474d769110139f9cc96d42434988d7aaa77634
DIFF: https://github.com/llvm/llvm-project/commit/15474d769110139f9cc96d42434988d7aaa77634.diff

LOG: [SVE][CodeGen] Replace use of TypeSize operator< in GlobalMerge::doMerge

We don't support global variables with scalable vector types so I've
changed the code to compare the fixed sizes instead.

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

Added: 
    

Modified: 
    llvm/lib/CodeGen/GlobalMerge.cpp

Removed: 
    


################################################################################
diff  --git a/llvm/lib/CodeGen/GlobalMerge.cpp b/llvm/lib/CodeGen/GlobalMerge.cpp
index 1e20c02ba160..6c1ce4c1efb0 100644
--- a/llvm/lib/CodeGen/GlobalMerge.cpp
+++ b/llvm/lib/CodeGen/GlobalMerge.cpp
@@ -223,8 +223,9 @@ bool GlobalMerge::doMerge(SmallVectorImpl<GlobalVariable*> &Globals,
   // FIXME: Find better heuristics
   llvm::stable_sort(
       Globals, [&DL](const GlobalVariable *GV1, const GlobalVariable *GV2) {
-        return DL.getTypeAllocSize(GV1->getValueType()) <
-               DL.getTypeAllocSize(GV2->getValueType());
+        // We don't support scalable global variables.
+        return DL.getTypeAllocSize(GV1->getValueType()).getFixedSize() <
+               DL.getTypeAllocSize(GV2->getValueType()).getFixedSize();
       });
 
   // If we want to just blindly group all globals together, do so.


        


More information about the llvm-commits mailing list