[PATCH] [RFC]TILE-Gx: updated patch for final review
Sean Silva
silvas at purdue.edu
Mon Mar 25 08:12:41 PDT 2013
Some simple stylistic comments. Far from exhaustive.
================
Comment at: lib/Target/Tile/TileFrameLowering.cpp:180-181
@@ +179,4 @@
+ // register to the stack.
+ for (unsigned i = 0; i < CSI.size(); ++i)
+ ++MBBI;
+
----------------
Use std::advance here and in other places
================
Comment at: lib/Target/Tile/TileFrameLowering.cpp:111-112
@@ +110,4 @@
+void TileFrameLowering::emitPrologue(MachineFunction &MF) const {
+ MachineBasicBlock &MBB = MF.front();
+ MachineFrameInfo *MFI = MF.getFrameInfo();
+ const TileInstrInfo &TII =
----------------
LLVM style does not align the `=` signs.
================
Comment at: lib/Target/Tile/TileCallingConv.h:32-34
@@ +31,5 @@
+ CCState &State) {
+
+ if (LocVT == MVT::i32
+ || LocVT == MVT::f32) {
+ unsigned Offset4 = State.AllocateStack(4, 8) + 16;
----------------
this fits on one line (same for the `if` just below this)
================
Comment at: lib/Target/Tile/TileAsmPrinter.cpp:178
@@ +177,3 @@
+ for (unsigned Index = 0;
+ Index < (sizeof bundle_templates / sizeof bundle_templates[0]);
+ Index++) {
----------------
Use array_lengthof
================
Comment at: lib/Target/Tile/MCTargetDesc/TileMCCodeEmitter.cpp:221-223
@@ +220,5 @@
+ if (MO.isReg()) {
+ unsigned Reg = MO.getReg();
+ unsigned RegNo = getTileRegisterNumbering(Reg);
+ return RegNo;
+ } else if (MO.isImm()) {
----------------
this can be just `return getTileRegisterNumbering(MO.getReg());`
================
Comment at: lib/Target/Tile/MCTargetDesc/TileMCCodeEmitter.cpp:170-171
@@ +169,4 @@
+ } else {
+ if (InstBundleBit & Binary)
+ llvm_unreachable("inst bundle bit overlapped!");
+
----------------
Just use an assert(). Here and in other places.
================
Comment at: lib/Target/Tile/AsmParser/TileAsmParser.cpp:395-396
@@ +394,4 @@
+bool TileAsmParser::
+tryParseRelocOperand(SmallVectorImpl<MCParsedAsmOperand*> &Operands,
+ StringRef Mnemonic){
+
----------------
space before the curly braces.
================
Comment at: lib/Target/Tile/AsmParser/TileAsmParser.cpp:372-383
@@ +371,14 @@
+
+ if (Tok.is(AsmToken::Identifier)) {
+ std::string lowerCase = Tok.getString().lower();
+ if (lowerCase[0] == 'r') {
+ int Value;
+ StringRef Num(lowerCase.c_str() + 1);
+ if (!Num.getAsInteger(10, Value))
+ RegNum = matchRegisterByNumber(Value, Mnemonic.lower());
+ } else
+ RegNum = matchRegisterName(lowerCase, Mnemonic.lower());
+ }
+
+ return RegNum;
+}
----------------
use an early exit here to simplify. <http://llvm.org/docs/CodingStandards.html#use-early-exits-and-continue-to-simplify-code>
================
Comment at: lib/Target/Tile/AsmParser/TileAsmParser.cpp:350-356
@@ +349,9 @@
+
+unsigned TileAsmParser::
+getReg(int RC,int RegNo){
+ return *(getContext().getRegisterInfo().getRegClass(RC).begin() + RegNo);
+}
+
+int TileAsmParser::
+matchRegisterByNumber(unsigned RegNum,StringRef Mnemonic) {
+
----------------
Put a space after commas, here and elsewhere. Also, try to avoid putting `retty ClassName::` on a separate line. Prefer breaking in the argument list. Alternatively, you could just use clang-format.
================
Comment at: lib/Target/Tile/AsmParser/TileAsmParser.cpp:333-342
@@ +332,12 @@
+ case Match_InvalidOperand: {
+ SMLoc ErrorLoc = IDLoc;
+ if (ErrorInfo != ~0U) {
+ if (ErrorInfo >= Operands.size())
+ return Error(IDLoc, "too few operands for instruction");
+
+ ErrorLoc = ((TileOperand*)Operands[ErrorInfo])->getStartLoc();
+ if (ErrorLoc == SMLoc()) ErrorLoc = IDLoc;
+ }
+
+ return Error(ErrorLoc, "invalid operand for instruction");
+ }
----------------
use early exits to simplify this
================
Comment at: lib/Target/Tile/AsmParser/TileAsmParser.cpp:292-298
@@ +291,9 @@
+
+ if (CC != -1) {
+ if (require32bit(Mnemonic))
+ ++CC;
+ return CC;
+ }
+
+ return -1;
+}
----------------
use an early exit to simplify.
================
Comment at: lib/CodeGen/TargetInfo.cpp:5013-5014
@@ +5012,4 @@
+
+ if (RetTy->isVoidType()
+ || Size == 0)
+ return ABIArgInfo::getIgnore();
----------------
no need for a line break here.
================
Comment at: lib/Target/Tile/TileVLIWPacketizer.cpp:330
@@ +329,3 @@
+ TileSlotType T1 = TileSlotTypeOf(MI1);
+ unsigned count = 0;
+ if (T == SlotX0X1Y0Y1)
----------------
Please follow LLVM naming conventions <http://llvm.org/docs/CodingStandards.html#name-types-functions-variables-and-enumerators-properly>
================
Comment at: lib/Target/Tile/TileVLIWPacketizer.cpp:231
@@ +230,3 @@
+
+ if (SUJ->isSucc(SUI)) {
+ for(unsigned i = 0;
----------------
use an early exit to simplify
================
Comment at: lib/Target/Tile/TileVLIWPacketizer.cpp:259-260
@@ +258,4 @@
+ // do nothing
+ }
+ else if (MCIDI.isConditionalBranch() && (DepType != SDep::Data) &&
+ (DepType != SDep::Output)) {
----------------
please follow our brace style
================
Comment at: lib/Target/Tile/TileVLIWPacketizer.cpp:232-234
@@ +231,5 @@
+ if (SUJ->isSucc(SUI)) {
+ for(unsigned i = 0;
+ (i < SUJ->Succs.size()) && !FoundSequentialDependence;
+ ++i) {
+
----------------
don't evaluate .size() every time through the loop; here and elsewhere.
http://llvm-reviews.chandlerc.com/D573
More information about the cfe-commits
mailing list