[PATCH] Replace another std::set in the core of CodeGenRegister, this time with sorted arrays.

Chandler Carruth chandlerc at gmail.com
Sat Jan 31 00:12:59 PST 2015

Change looks fine, but I'd really love to see this code cleaned up more if you're going to be here...

- Not using weird typedefs like Vec
- Using range based for loops rather than just auto.
- Use lambdas

Anyways, none of that cleanup should preclude making it go faster.


Comment at: utils/TableGen/CodeGenRegisters.cpp:645
@@ -644,1 +644,3 @@
+static void SortRegisterVector(CodeGenRegister::Vec &M) {
+  std::sort(M.begin(), M.end(), CodeGenRegister::Less());
This should be sortRegisterVector... but it doesn't just sort, it uniques as well. I would probably call it 'sortAndUniqueRegisters', but feel free to paint it a different shade.

Comment at: utils/TableGen/CodeGenRegisters.h:418-419
@@ -409,3 +417,4 @@
-      Key(const CodeGenRegister::Set *M, unsigned S = 0, unsigned A = 0)
+      Key(const CodeGenRegister::Vec *M,
+          unsigned S = 0, unsigned A = 0)
         : Members(M), SpillSize(S), SpillAlignment(A) {}
My clang format spidey sense says this line break isn't necessary.



More information about the llvm-commits mailing list