mattdr added a comment.

Adding a few early style notes for the next round, but overall echo @chandlerc 
that this seems significantly outside of normal LLVM code.



================
Comment at: llvm/lib/Target/X86/ImmutableGraph.h:26
+
+#ifndef IMMUTABLEGRAPH_H
+#define IMMUTABLEGRAPH_H
----------------
It's sort of surprising that the LLVM style guide doesn't call this out 
explicitly, but `#include` guards are supposed to include the full file path. 
If they just used the filename, like, this, files with the same name in 
different paths would collide.

For an example of the expected style, see an adjacent header in this directory: 
https://github.com/llvm/llvm-project/blob/ba8b3052b59ebee4311d10bee5209dac8747acea/llvm/lib/Target/X86/X86AsmPrinter.h#L10



================
Comment at: llvm/lib/Target/X86/ImmutableGraph.h:318
+    }
+    auto *VertexArray = new Node[VertexSize + 1 /* terminator node */];
+    auto *EdgeArray = new Edge[EdgeSize];
----------------
As a general rule `new` is a code-smell in modern C++. This should be a 
`vector`.


================
Comment at: llvm/lib/Target/X86/ImmutableGraph.h:335
+    VertexArray[VI].__edges = EdgeArray + EdgeSize; // terminator node
+    return new GraphT{VertexArray, VertexSize, EdgeArray, EdgeSize,
+                      std::forward<ArgT>(Args)...};
----------------
this should return a `unique_ptr` to signal ownership transfer


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

https://reviews.llvm.org/D75936



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to