<div dir="ltr">Eugene,<div><br></div><div>Looks like this change breaks sanitizer-windows bot:</div><div><a href="http://lab.llvm.org:8011/builders/sanitizer-windows/builds/4908">http://lab.llvm.org:8011/builders/sanitizer-windows/builds/4908</a><br></div><div><br></div><div><div>:\PROGRA~2\MICROS~1.0\VC\bin\AMD64_~2\cl.exe   /nologo /TP -DGTEST_HAS_RTTI=0 -DUNICODE -D_CRT_NONSTDC_NO_DEPRECATE -D_CRT_NONSTDC_NO_WARNINGS -D_CRT_SECURE_NO_DEPRECATE -D_CRT_SECURE_NO_WARNINGS -D_HAS_EXCEPTIONS=0 -D_SCL_SECURE_NO_DEPRECATE -D_SCL_SECURE_NO_WARNINGS -D_UNICODE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -Ilib\Target\AMDGPU -IC:\b\slave\sanitizer-windows\llvm\lib\Target\AMDGPU -Iinclude -IC:\b\slave\sanitizer-windows\llvm\include /DWIN32 /D_WINDOWS   /W4 -wd4141 -wd4146 -wd4180 -wd4244 -wd4258 -wd4267 -wd4291 -wd4345 -wd4351 -wd4355 -wd4456 -wd4457 -wd4458 -wd4459 -wd4503 -wd4624 -wd4722 -wd4800 -wd4100 -wd4127 -wd4512 -wd4505 -wd4610 -wd4510 -wd4702 -wd4245 -wd4706 -wd4310 -wd4701 -wd4703 -wd4389 -wd4611 -wd4805 -wd4204 -wd4577 -wd4091 -wd4592 -wd4319 -wd4324 -w14062 -we4238 /Zc:inline /Zc:strictStrings /Oi /Zc:rvalueCast /MD /O2 /Ob2   -UNDEBUG  /EHs-c- /GR- /showIncludes /Folib\Target\AMDGPU\CMakeFiles\LLVMAMDGPUCodeGen.dir\AMDILCFGStructurizer.cpp.obj /Fdlib\Target\AMDGPU\CMakeFiles\LLVMAMDGPUCodeGen.dir\ /FS -c C:\b\slave\sanitizer-windows\llvm\lib\Target\AMDGPU\AMDILCFGStructurizer.cpp</div><div>C:\b\slave\sanitizer-windows\llvm\lib\Target\AMDGPU\AMDILCFGStructurizer.cpp(689): error C2027: use of undefined type 'llvm::MachineJumpTableInfo'</div><div>C:\b\slave\sanitizer-windows\llvm\include\llvm/Target/TargetLowering.h(74): note: see declaration of 'llvm::MachineJumpTableInfo'</div><div>C:\b\slave\sanitizer-windows\llvm\lib\Target\AMDGPU\AMDILCFGStructurizer.cpp(689): error C2227: left of '->isEmpty' must point to class/struct/union/generic type</div><div>3271149.631 [9/14/3] Building CXX object lib\Target\AMDGPU\CMakeFiles\LLVMAMDGPUCodeGen.dir\SIInsertSkips.cpp.obj</div></div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr">On Fri, Jan 20, 2017 at 5:04 PM Eugene Zelenko via llvm-commits <<a href="mailto:llvm-commits@lists.llvm.org">llvm-commits@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Author: eugenezelenko<br class="gmail_msg">
Date: Fri Jan 20 18:53:49 2017<br class="gmail_msg">
New Revision: 292688<br class="gmail_msg">
<br class="gmail_msg">
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=292688&view=rev" rel="noreferrer" class="gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-project?rev=292688&view=rev</a><br class="gmail_msg">
Log:<br class="gmail_msg">
[AMDGPU] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC).<br class="gmail_msg">
<br class="gmail_msg">
Modified:<br class="gmail_msg">
    llvm/trunk/lib/Target/AMDGPU/AMDILCFGStructurizer.cpp<br class="gmail_msg">
    llvm/trunk/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp<br class="gmail_msg">
    llvm/trunk/lib/Target/AMDGPU/SIISelLowering.cpp<br class="gmail_msg">
    llvm/trunk/lib/Target/AMDGPU/SIInsertSkips.cpp<br class="gmail_msg">
    llvm/trunk/lib/Target/AMDGPU/SIInsertWaits.cpp<br class="gmail_msg">
    llvm/trunk/lib/Target/AMDGPU/SILoadStoreOptimizer.cpp<br class="gmail_msg">
    llvm/trunk/lib/Target/AMDGPU/SIMachineFunctionInfo.h<br class="gmail_msg">
    llvm/trunk/lib/Target/AMDGPU/SIMachineScheduler.h<br class="gmail_msg">
<br class="gmail_msg">
Modified: llvm/trunk/lib/Target/AMDGPU/AMDILCFGStructurizer.cpp<br class="gmail_msg">
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AMDGPU/AMDILCFGStructurizer.cpp?rev=292688&r1=292687&r2=292688&view=diff" rel="noreferrer" class="gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AMDGPU/AMDILCFGStructurizer.cpp?rev=292688&r1=292687&r2=292688&view=diff</a><br class="gmail_msg">
==============================================================================<br class="gmail_msg">
--- llvm/trunk/lib/Target/AMDGPU/AMDILCFGStructurizer.cpp (original)<br class="gmail_msg">
+++ llvm/trunk/lib/Target/AMDGPU/AMDILCFGStructurizer.cpp Fri Jan 20 18:53:49 2017<br class="gmail_msg">
@@ -9,27 +9,39 @@<br class="gmail_msg">
 //==-----------------------------------------------------------------------===//<br class="gmail_msg">
<br class="gmail_msg">
 #include "AMDGPU.h"<br class="gmail_msg">
-#include "AMDGPUInstrInfo.h"<br class="gmail_msg">
 #include "AMDGPUSubtarget.h"<br class="gmail_msg">
 #include "R600InstrInfo.h"<br class="gmail_msg">
+#include "R600RegisterInfo.h"<br class="gmail_msg">
 #include "llvm/ADT/DepthFirstIterator.h"<br class="gmail_msg">
 #include "llvm/ADT/SCCIterator.h"<br class="gmail_msg">
+#include "llvm/ADT/SmallPtrSet.h"<br class="gmail_msg">
 #include "llvm/ADT/SmallVector.h"<br class="gmail_msg">
 #include "llvm/ADT/Statistic.h"<br class="gmail_msg">
+#include "llvm/ADT/StringRef.h"<br class="gmail_msg">
+#include "llvm/CodeGen/MachineBasicBlock.h"<br class="gmail_msg">
 #include "llvm/CodeGen/MachineDominators.h"<br class="gmail_msg">
 #include "llvm/CodeGen/MachineFunction.h"<br class="gmail_msg">
 #include "llvm/CodeGen/MachineFunctionPass.h"<br class="gmail_msg">
+#include "llvm/CodeGen/MachineInstr.h"<br class="gmail_msg">
 #include "llvm/CodeGen/MachineInstrBuilder.h"<br class="gmail_msg">
-#include "llvm/CodeGen/MachineJumpTableInfo.h"<br class="gmail_msg">
 #include "llvm/CodeGen/MachineLoopInfo.h"<br class="gmail_msg">
+#include "llvm/CodeGen/MachineOperand.h"<br class="gmail_msg">
 #include "llvm/CodeGen/MachinePostDominators.h"<br class="gmail_msg">
 #include "llvm/CodeGen/MachineRegisterInfo.h"<br class="gmail_msg">
-#include "llvm/IR/Dominators.h"<br class="gmail_msg">
+#include "llvm/CodeGen/MachineValueType.h"<br class="gmail_msg">
+#include "llvm/IR/DebugLoc.h"<br class="gmail_msg">
+#include "llvm/IR/LLVMContext.h"<br class="gmail_msg">
+#include "llvm/Pass.h"<br class="gmail_msg">
 #include "llvm/Support/Debug.h"<br class="gmail_msg">
+#include "llvm/Support/ErrorHandling.h"<br class="gmail_msg">
 #include "llvm/Support/raw_ostream.h"<br class="gmail_msg">
-#include "llvm/Target/TargetInstrInfo.h"<br class="gmail_msg">
-#include "llvm/Target/TargetMachine.h"<br class="gmail_msg">
+#include <cassert><br class="gmail_msg">
+#include <cstddef><br class="gmail_msg">
 #include <deque><br class="gmail_msg">
+#include <iterator><br class="gmail_msg">
+#include <map><br class="gmail_msg">
+#include <utility><br class="gmail_msg">
+#include <vector><br class="gmail_msg">
<br class="gmail_msg">
 using namespace llvm;<br class="gmail_msg">
<br class="gmail_msg">
@@ -53,15 +65,19 @@ STATISTIC(numClonedBlock,           "CFG<br class="gmail_msg">
 STATISTIC(numClonedInstr,           "CFGStructurizer cloned instructions");<br class="gmail_msg">
<br class="gmail_msg">
 namespace llvm {<br class="gmail_msg">
+<br class="gmail_msg">
   void initializeAMDGPUCFGStructurizerPass(PassRegistry&);<br class="gmail_msg">
-}<br class="gmail_msg">
+<br class="gmail_msg">
+} // end namespace llvm<br class="gmail_msg">
+<br class="gmail_msg">
+namespace {<br class="gmail_msg">
<br class="gmail_msg">
 //===----------------------------------------------------------------------===//<br class="gmail_msg">
 //<br class="gmail_msg">
 // Miscellaneous utility for CFGStructurizer.<br class="gmail_msg">
 //<br class="gmail_msg">
 //===----------------------------------------------------------------------===//<br class="gmail_msg">
-namespace {<br class="gmail_msg">
+<br class="gmail_msg">
 #define SHOWNEWINSTR(i) \<br class="gmail_msg">
   DEBUG(dbgs() << "New instr: " << *i << "\n");<br class="gmail_msg">
<br class="gmail_msg">
@@ -92,25 +108,19 @@ void ReverseVector(SmallVectorImpl<NodeT<br class="gmail_msg">
   }<br class="gmail_msg">
 }<br class="gmail_msg">
<br class="gmail_msg">
-} // end anonymous namespace<br class="gmail_msg">
-<br class="gmail_msg">
 //===----------------------------------------------------------------------===//<br class="gmail_msg">
 //<br class="gmail_msg">
 // supporting data structure for CFGStructurizer<br class="gmail_msg">
 //<br class="gmail_msg">
 //===----------------------------------------------------------------------===//<br class="gmail_msg">
<br class="gmail_msg">
-<br class="gmail_msg">
-namespace {<br class="gmail_msg">
-<br class="gmail_msg">
 class BlockInformation {<br class="gmail_msg">
 public:<br class="gmail_msg">
-  bool IsRetired;<br class="gmail_msg">
-  int  SccNum;<br class="gmail_msg">
-  BlockInformation() : IsRetired(false), SccNum(INVALIDSCCNUM) {}<br class="gmail_msg">
-};<br class="gmail_msg">
+  bool IsRetired = false;<br class="gmail_msg">
+  int SccNum = INVALIDSCCNUM;<br class="gmail_msg">
<br class="gmail_msg">
-} // end anonymous namespace<br class="gmail_msg">
+  BlockInformation() = default;<br class="gmail_msg">
+};<br class="gmail_msg">
<br class="gmail_msg">
 //===----------------------------------------------------------------------===//<br class="gmail_msg">
 //<br class="gmail_msg">
@@ -118,7 +128,6 @@ public:<br class="gmail_msg">
 //<br class="gmail_msg">
 //===----------------------------------------------------------------------===//<br class="gmail_msg">
<br class="gmail_msg">
-namespace {<br class="gmail_msg">
 class AMDGPUCFGStructurizer : public MachineFunctionPass {<br class="gmail_msg">
 public:<br class="gmail_msg">
   typedef SmallVector<MachineBasicBlock *, 32> MBBVector;<br class="gmail_msg">
@@ -133,8 +142,7 @@ public:<br class="gmail_msg">
<br class="gmail_msg">
   static char ID;<br class="gmail_msg">
<br class="gmail_msg">
-  AMDGPUCFGStructurizer() :<br class="gmail_msg">
-      MachineFunctionPass(ID), TII(nullptr), TRI(nullptr) {<br class="gmail_msg">
+  AMDGPUCFGStructurizer() : MachineFunctionPass(ID) {<br class="gmail_msg">
     initializeAMDGPUCFGStructurizerPass(*PassRegistry::getPassRegistry());<br class="gmail_msg">
   }<br class="gmail_msg">
<br class="gmail_msg">
@@ -167,7 +175,7 @@ public:<br class="gmail_msg">
     MLI = &getAnalysis<MachineLoopInfo>();<br class="gmail_msg">
     DEBUG(dbgs() << "LoopInfo:\n"; PrintLoopinfo(*MLI););<br class="gmail_msg">
     MDT = &getAnalysis<MachineDominatorTree>();<br class="gmail_msg">
-    DEBUG(MDT->print(dbgs(), (const llvm::Module*)nullptr););<br class="gmail_msg">
+    DEBUG(MDT->print(dbgs(), (const Module*)nullptr););<br class="gmail_msg">
     PDT = &getAnalysis<MachinePostDominatorTree>();<br class="gmail_msg">
     DEBUG(PDT->print(dbgs()););<br class="gmail_msg">
     prepare();<br class="gmail_msg">
@@ -180,8 +188,8 @@ protected:<br class="gmail_msg">
   MachineDominatorTree *MDT;<br class="gmail_msg">
   MachinePostDominatorTree *PDT;<br class="gmail_msg">
   MachineLoopInfo *MLI;<br class="gmail_msg">
-  const R600InstrInfo *TII;<br class="gmail_msg">
-  const R600RegisterInfo *TRI;<br class="gmail_msg">
+  const R600InstrInfo *TII = nullptr;<br class="gmail_msg">
+  const R600RegisterInfo *TRI = nullptr;<br class="gmail_msg">
<br class="gmail_msg">
   // PRINT FUNCTIONS<br class="gmail_msg">
   /// Print the ordered Blocks.<br class="gmail_msg">
@@ -198,6 +206,7 @@ protected:<br class="gmail_msg">
       }<br class="gmail_msg">
     }<br class="gmail_msg">
   }<br class="gmail_msg">
+<br class="gmail_msg">
   static void PrintLoopinfo(const MachineLoopInfo &LoopInfo) {<br class="gmail_msg">
     for (MachineLoop::iterator iter = LoopInfo.begin(),<br class="gmail_msg">
          iterEnd = LoopInfo.end(); iter != iterEnd; ++iter) {<br class="gmail_msg">
@@ -263,7 +272,6 @@ protected:<br class="gmail_msg">
       MachineBasicBlock *OldMBB, MachineBasicBlock *NewBlk);<br class="gmail_msg">
   static void wrapup(MachineBasicBlock *MBB);<br class="gmail_msg">
<br class="gmail_msg">
-<br class="gmail_msg">
   int patternMatch(MachineBasicBlock *MBB);<br class="gmail_msg">
   int patternMatchGroup(MachineBasicBlock *MBB);<br class="gmail_msg">
   int serialPatternMatch(MachineBasicBlock *MBB);<br class="gmail_msg">
@@ -328,7 +336,6 @@ protected:<br class="gmail_msg">
   void recordSccnum(MachineBasicBlock *MBB, int SCCNum);<br class="gmail_msg">
   void retireBlock(MachineBasicBlock *MBB);<br class="gmail_msg">
<br class="gmail_msg">
-<br class="gmail_msg">
 private:<br class="gmail_msg">
   MBBInfoMap BlockInfoMap;<br class="gmail_msg">
   LoopLandInfoMap LLInfoMap;<br class="gmail_msg">
@@ -337,6 +344,10 @@ private:<br class="gmail_msg">
   SmallVector<MachineBasicBlock *, DEFAULT_VEC_SLOTS> OrderedBlks;<br class="gmail_msg">
 };<br class="gmail_msg">
<br class="gmail_msg">
+char AMDGPUCFGStructurizer::ID = 0;<br class="gmail_msg">
+<br class="gmail_msg">
+} // end anonymous namespace<br class="gmail_msg">
+<br class="gmail_msg">
 int AMDGPUCFGStructurizer::getSCCNum(MachineBasicBlock *MBB) const {<br class="gmail_msg">
   MBBInfoMap::const_iterator It = BlockInfoMap.find(MBB);<br class="gmail_msg">
   if (It == BlockInfoMap.end())<br class="gmail_msg">
@@ -379,6 +390,7 @@ bool AMDGPUCFGStructurizer::isActiveLoop<br class="gmail_msg">
   }<br class="gmail_msg">
   return false;<br class="gmail_msg">
 }<br class="gmail_msg">
+<br class="gmail_msg">
 AMDGPUCFGStructurizer::PathToKind AMDGPUCFGStructurizer::singlePathTo(<br class="gmail_msg">
     MachineBasicBlock *SrcMBB, MachineBasicBlock *DstMBB,<br class="gmail_msg">
     bool AllowSideEntry) const {<br class="gmail_msg">
@@ -697,10 +709,8 @@ void AMDGPUCFGStructurizer::wrapup(Machi<br class="gmail_msg">
    // (jumpTableInfo->isEmpty() == false) { need to clean the jump table, but<br class="gmail_msg">
    // there isn't such an interface yet.  alternatively, replace all the other<br class="gmail_msg">
    // blocks in the jump table with the entryBlk //}<br class="gmail_msg">
-<br class="gmail_msg">
 }<br class="gmail_msg">
<br class="gmail_msg">
-<br class="gmail_msg">
 bool AMDGPUCFGStructurizer::prepare() {<br class="gmail_msg">
   bool Changed = false;<br class="gmail_msg">
<br class="gmail_msg">
@@ -748,7 +758,6 @@ bool AMDGPUCFGStructurizer::prepare() {<br class="gmail_msg">
 }<br class="gmail_msg">
<br class="gmail_msg">
 bool AMDGPUCFGStructurizer::run() {<br class="gmail_msg">
-<br class="gmail_msg">
   //Assume reducible CFG...<br class="gmail_msg">
   DEBUG(dbgs() << "AMDGPUCFGStructurizer::run\n");<br class="gmail_msg">
<br class="gmail_msg">
@@ -886,8 +895,6 @@ bool AMDGPUCFGStructurizer::run() {<br class="gmail_msg">
   return true;<br class="gmail_msg">
 }<br class="gmail_msg">
<br class="gmail_msg">
-<br class="gmail_msg">
-<br class="gmail_msg">
 void AMDGPUCFGStructurizer::orderBlocks(MachineFunction *MF) {<br class="gmail_msg">
   int SccNum = 0;<br class="gmail_msg">
   MachineBasicBlock *MBB;<br class="gmail_msg">
@@ -941,7 +948,6 @@ int AMDGPUCFGStructurizer::patternMatchG<br class="gmail_msg">
   return NumMatch;<br class="gmail_msg">
 }<br class="gmail_msg">
<br class="gmail_msg">
-<br class="gmail_msg">
 int AMDGPUCFGStructurizer::serialPatternMatch(MachineBasicBlock *MBB) {<br class="gmail_msg">
   if (MBB->succ_size() != 1)<br class="gmail_msg">
     return 0;<br class="gmail_msg">
@@ -1039,7 +1045,7 @@ int AMDGPUCFGStructurizer::loopendPatter<br class="gmail_msg">
     for (MachineLoop *ML : depth_first(It))<br class="gmail_msg">
       NestedLoops.push_front(ML);<br class="gmail_msg">
<br class="gmail_msg">
-  if (NestedLoops.size() == 0)<br class="gmail_msg">
+  if (NestedLoops.empty())<br class="gmail_msg">
     return 0;<br class="gmail_msg">
<br class="gmail_msg">
   // Process nested loop outside->inside (we did push_front),<br class="gmail_msg">
@@ -1074,7 +1080,7 @@ int AMDGPUCFGStructurizer::mergeLoop(Mac<br class="gmail_msg">
   MachineBasicBlock *ExitBlk = *ExitBlks.begin();<br class="gmail_msg">
   assert(ExitBlk && "Loop has several exit block");<br class="gmail_msg">
   MBBVector LatchBlks;<br class="gmail_msg">
-  typedef GraphTraits<Inverse<MachineBasicBlock*> > InvMBBTraits;<br class="gmail_msg">
+  typedef GraphTraits<Inverse<MachineBasicBlock*>> InvMBBTraits;<br class="gmail_msg">
   InvMBBTraits::ChildIteratorType PI = InvMBBTraits::child_begin(LoopHeader),<br class="gmail_msg">
       PE = InvMBBTraits::child_end(LoopHeader);<br class="gmail_msg">
   for (; PI != PE; PI++) {<br class="gmail_msg">
@@ -1217,7 +1223,7 @@ void AMDGPUCFGStructurizer::showImproveS<br class="gmail_msg">
     }<br class="gmail_msg">
   }<br class="gmail_msg">
<br class="gmail_msg">
-    dbgs() << "\n";<br class="gmail_msg">
+  dbgs() << "\n";<br class="gmail_msg">
 }<br class="gmail_msg">
<br class="gmail_msg">
 int AMDGPUCFGStructurizer::improveSimpleJumpintoIf(MachineBasicBlock *HeadMBB,<br class="gmail_msg">
@@ -1478,7 +1484,6 @@ void AMDGPUCFGStructurizer::mergeIfthene<br class="gmail_msg">
<br class="gmail_msg">
   if (LandMBB && TrueMBB && FalseMBB)<br class="gmail_msg">
     MBB->addSuccessor(LandMBB);<br class="gmail_msg">
-<br class="gmail_msg">
 }<br class="gmail_msg">
<br class="gmail_msg">
 void AMDGPUCFGStructurizer::mergeLooplandBlock(MachineBasicBlock *DstBlk,<br class="gmail_msg">
@@ -1491,7 +1496,6 @@ void AMDGPUCFGStructurizer::mergeLooplan<br class="gmail_msg">
   DstBlk->replaceSuccessor(DstBlk, LandMBB);<br class="gmail_msg">
 }<br class="gmail_msg">
<br class="gmail_msg">
-<br class="gmail_msg">
 void AMDGPUCFGStructurizer::mergeLoopbreakBlock(MachineBasicBlock *ExitingMBB,<br class="gmail_msg">
     MachineBasicBlock *LandMBB) {<br class="gmail_msg">
   DEBUG(dbgs() << "loopbreakPattern exiting = BB" << ExitingMBB->getNumber()<br class="gmail_msg">
@@ -1727,11 +1731,6 @@ void AMDGPUCFGStructurizer::retireBlock(<br class="gmail_msg">
          && "can't retire block yet");<br class="gmail_msg">
 }<br class="gmail_msg">
<br class="gmail_msg">
-char AMDGPUCFGStructurizer::ID = 0;<br class="gmail_msg">
-<br class="gmail_msg">
-} // end anonymous namespace<br class="gmail_msg">
-<br class="gmail_msg">
-<br class="gmail_msg">
 INITIALIZE_PASS_BEGIN(AMDGPUCFGStructurizer, "amdgpustructurizer",<br class="gmail_msg">
                       "AMDGPU CFG Structurizer", false, false)<br class="gmail_msg">
 INITIALIZE_PASS_DEPENDENCY(MachineDominatorTree)<br class="gmail_msg">
<br class="gmail_msg">
Modified: llvm/trunk/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp<br class="gmail_msg">
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp?rev=292688&r1=292687&r2=292688&view=diff" rel="noreferrer" class="gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp?rev=292688&r1=292687&r2=292688&view=diff</a><br class="gmail_msg">
==============================================================================<br class="gmail_msg">
--- llvm/trunk/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp (original)<br class="gmail_msg">
+++ llvm/trunk/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp Fri Jan 20 18:53:49 2017<br class="gmail_msg">
@@ -16,6 +16,7 @@<br class="gmail_msg">
 #include "Utils/AMDGPUAsmUtils.h"<br class="gmail_msg">
 #include "llvm/ADT/APFloat.h"<br class="gmail_msg">
 #include "llvm/ADT/APInt.h"<br class="gmail_msg">
+#include "llvm/ADT/ArrayRef.h"<br class="gmail_msg">
 #include "llvm/ADT/SmallBitVector.h"<br class="gmail_msg">
 #include "llvm/ADT/SmallString.h"<br class="gmail_msg">
 #include "llvm/ADT/STLExtras.h"<br class="gmail_msg">
@@ -39,15 +40,12 @@<br class="gmail_msg">
 #include "llvm/MC/MCSubtargetInfo.h"<br class="gmail_msg">
 #include "llvm/MC/MCSymbol.h"<br class="gmail_msg">
 #include "llvm/Support/Casting.h"<br class="gmail_msg">
-#include "llvm/Support/Debug.h"<br class="gmail_msg">
 #include "llvm/Support/ELF.h"<br class="gmail_msg">
 #include "llvm/Support/ErrorHandling.h"<br class="gmail_msg">
 #include "llvm/Support/MathExtras.h"<br class="gmail_msg">
 #include "llvm/Support/raw_ostream.h"<br class="gmail_msg">
 #include "llvm/Support/SMLoc.h"<br class="gmail_msg">
 #include "llvm/Support/TargetRegistry.h"<br class="gmail_msg">
-#include "llvm/Support/raw_ostream.h"<br class="gmail_msg">
-#include "llvm/Support/MathExtras.h"<br class="gmail_msg">
 #include <algorithm><br class="gmail_msg">
 #include <cassert><br class="gmail_msg">
 #include <cstdint><br class="gmail_msg">
@@ -56,7 +54,6 @@<br class="gmail_msg">
 #include <map><br class="gmail_msg">
 #include <memory><br class="gmail_msg">
 #include <string><br class="gmail_msg">
-#include <vector><br class="gmail_msg">
<br class="gmail_msg">
 using namespace llvm;<br class="gmail_msg">
 using namespace llvm::AMDGPU;<br class="gmail_msg">
@@ -695,9 +692,9 @@ raw_ostream &operator <<(raw_ostream &OS<br class="gmail_msg">
 // Kernel scope begins at .amdgpu_hsa_kernel directive, ends at next<br class="gmail_msg">
 // .amdgpu_hsa_kernel or at EOF.<br class="gmail_msg">
 class KernelScopeInfo {<br class="gmail_msg">
-  int SgprIndexUnusedMin;<br class="gmail_msg">
-  int VgprIndexUnusedMin;<br class="gmail_msg">
-  MCContext *Ctx;<br class="gmail_msg">
+  int SgprIndexUnusedMin = -1;<br class="gmail_msg">
+  int VgprIndexUnusedMin = -1;<br class="gmail_msg">
+  MCContext *Ctx = nullptr;<br class="gmail_msg">
<br class="gmail_msg">
   void usesSgprAt(int i) {<br class="gmail_msg">
     if (i >= SgprIndexUnusedMin) {<br class="gmail_msg">
@@ -708,6 +705,7 @@ class KernelScopeInfo {<br class="gmail_msg">
       }<br class="gmail_msg">
     }<br class="gmail_msg">
   }<br class="gmail_msg">
+<br class="gmail_msg">
   void usesVgprAt(int i) {<br class="gmail_msg">
     if (i >= VgprIndexUnusedMin) {<br class="gmail_msg">
       VgprIndexUnusedMin = ++i;<br class="gmail_msg">
@@ -717,14 +715,16 @@ class KernelScopeInfo {<br class="gmail_msg">
       }<br class="gmail_msg">
     }<br class="gmail_msg">
   }<br class="gmail_msg">
+<br class="gmail_msg">
 public:<br class="gmail_msg">
-  KernelScopeInfo() : SgprIndexUnusedMin(-1), VgprIndexUnusedMin(-1), Ctx(nullptr)<br class="gmail_msg">
-  {}<br class="gmail_msg">
+  KernelScopeInfo() = default;<br class="gmail_msg">
+<br class="gmail_msg">
   void initialize(MCContext &Context) {<br class="gmail_msg">
     Ctx = &Context;<br class="gmail_msg">
     usesSgprAt(SgprIndexUnusedMin = -1);<br class="gmail_msg">
     usesVgprAt(VgprIndexUnusedMin = -1);<br class="gmail_msg">
   }<br class="gmail_msg">
+<br class="gmail_msg">
   void usesRegister(RegisterKind RegKind, unsigned DwordRegIndex, unsigned RegWidth) {<br class="gmail_msg">
     switch (RegKind) {<br class="gmail_msg">
       case IS_SGPR: usesSgprAt(DwordRegIndex + RegWidth - 1); break;<br class="gmail_msg">
@@ -738,9 +738,9 @@ class AMDGPUAsmParser : public MCTargetA<br class="gmail_msg">
   const MCInstrInfo &MII;<br class="gmail_msg">
   MCAsmParser &Parser;<br class="gmail_msg">
<br class="gmail_msg">
-  unsigned ForcedEncodingSize;<br class="gmail_msg">
-  bool ForcedDPP;<br class="gmail_msg">
-  bool ForcedSDWA;<br class="gmail_msg">
+  unsigned ForcedEncodingSize = 0;<br class="gmail_msg">
+  bool ForcedDPP = false;<br class="gmail_msg">
+  bool ForcedSDWA = false;<br class="gmail_msg">
   KernelScopeInfo KernelScope;<br class="gmail_msg">
<br class="gmail_msg">
   /// @name Auto-generated Match Functions<br class="gmail_msg">
@@ -779,10 +779,7 @@ public:<br class="gmail_msg">
   AMDGPUAsmParser(const MCSubtargetInfo &STI, MCAsmParser &_Parser,<br class="gmail_msg">
                const MCInstrInfo &MII,<br class="gmail_msg">
                const MCTargetOptions &Options)<br class="gmail_msg">
-      : MCTargetAsmParser(Options, STI), MII(MII), Parser(_Parser),<br class="gmail_msg">
-        ForcedEncodingSize(0),<br class="gmail_msg">
-        ForcedDPP(false),<br class="gmail_msg">
-        ForcedSDWA(false) {<br class="gmail_msg">
+      : MCTargetAsmParser(Options, STI), MII(MII), Parser(_Parser) {<br class="gmail_msg">
     MCAsmParserExtension::Initialize(Parser);<br class="gmail_msg">
<br class="gmail_msg">
     if (getSTI().getFeatureBits().none()) {<br class="gmail_msg">
@@ -1043,7 +1040,6 @@ bool AMDGPUOperand::isInlinableImm(MVT t<br class="gmail_msg">
       AsmParser->hasInv2PiInlineImm());<br class="gmail_msg">
   }<br class="gmail_msg">
<br class="gmail_msg">
-<br class="gmail_msg">
   // We got int literal token.<br class="gmail_msg">
   if (type == MVT::f64 || type == MVT::i64) { // Expected 64-bit operand<br class="gmail_msg">
     return AMDGPU::isInlinableLiteral64(Imm.Val,<br class="gmail_msg">
@@ -1132,7 +1128,7 @@ void AMDGPUOperand::addLiteralImmOperand<br class="gmail_msg">
     APInt Literal(64, Val);<br class="gmail_msg">
<br class="gmail_msg">
     switch (OpSize) {<br class="gmail_msg">
-    case 8: {<br class="gmail_msg">
+    case 8:<br class="gmail_msg">
       if (AMDGPU::isInlinableLiteral64(Literal.getZExtValue(),<br class="gmail_msg">
                                        AsmParser->hasInv2PiInlineImm())) {<br class="gmail_msg">
         Inst.addOperand(MCOperand::createImm(Literal.getZExtValue()));<br class="gmail_msg">
@@ -1156,7 +1152,7 @@ void AMDGPUOperand::addLiteralImmOperand<br class="gmail_msg">
       // unclear how we should encode them. This case should be checked earlier<br class="gmail_msg">
       // in predicate methods (isLiteralImm())<br class="gmail_msg">
       llvm_unreachable("fp literal in 64-bit integer instruction.");<br class="gmail_msg">
-    }<br class="gmail_msg">
+<br class="gmail_msg">
     case 4:<br class="gmail_msg">
     case 2: {<br class="gmail_msg">
       bool lost;<br class="gmail_msg">
@@ -1180,7 +1176,7 @@ void AMDGPUOperand::addLiteralImmOperand<br class="gmail_msg">
   // Only sign extend inline immediates.<br class="gmail_msg">
   // FIXME: No errors on truncation<br class="gmail_msg">
   switch (OpSize) {<br class="gmail_msg">
-  case 4: {<br class="gmail_msg">
+  case 4:<br class="gmail_msg">
     if (isInt<32>(Val) &&<br class="gmail_msg">
         AMDGPU::isInlinableLiteral32(static_cast<int32_t>(Val),<br class="gmail_msg">
                                      AsmParser->hasInv2PiInlineImm())) {<br class="gmail_msg">
@@ -1190,8 +1186,8 @@ void AMDGPUOperand::addLiteralImmOperand<br class="gmail_msg">
<br class="gmail_msg">
     Inst.addOperand(MCOperand::createImm(Val & 0xffffffff));<br class="gmail_msg">
     return;<br class="gmail_msg">
-  }<br class="gmail_msg">
-  case 8: {<br class="gmail_msg">
+<br class="gmail_msg">
+  case 8:<br class="gmail_msg">
     if (AMDGPU::isInlinableLiteral64(Val,<br class="gmail_msg">
                                      AsmParser->hasInv2PiInlineImm())) {<br class="gmail_msg">
       Inst.addOperand(MCOperand::createImm(Val));<br class="gmail_msg">
@@ -1200,8 +1196,8 @@ void AMDGPUOperand::addLiteralImmOperand<br class="gmail_msg">
<br class="gmail_msg">
     Inst.addOperand(MCOperand::createImm(Lo_32(Val)));<br class="gmail_msg">
     return;<br class="gmail_msg">
-  }<br class="gmail_msg">
-  case 2: {<br class="gmail_msg">
+<br class="gmail_msg">
+  case 2:<br class="gmail_msg">
     if (isInt<16>(Val) &&<br class="gmail_msg">
         AMDGPU::isInlinableLiteral16(static_cast<int16_t>(Val),<br class="gmail_msg">
                                      AsmParser->hasInv2PiInlineImm())) {<br class="gmail_msg">
@@ -1211,7 +1207,7 @@ void AMDGPUOperand::addLiteralImmOperand<br class="gmail_msg">
<br class="gmail_msg">
     Inst.addOperand(MCOperand::createImm(Val & 0xffff));<br class="gmail_msg">
     return;<br class="gmail_msg">
-  }<br class="gmail_msg">
+<br class="gmail_msg">
   default:<br class="gmail_msg">
     llvm_unreachable("invalid operand size");<br class="gmail_msg">
   }<br class="gmail_msg">
@@ -1295,7 +1291,8 @@ static unsigned getSpecialRegForName(Str<br class="gmail_msg">
     .Default(0);<br class="gmail_msg">
 }<br class="gmail_msg">
<br class="gmail_msg">
-bool AMDGPUAsmParser::ParseRegister(unsigned &RegNo, SMLoc &StartLoc, SMLoc &EndLoc) {<br class="gmail_msg">
+bool AMDGPUAsmParser::ParseRegister(unsigned &RegNo, SMLoc &StartLoc,<br class="gmail_msg">
+                                    SMLoc &EndLoc) {<br class="gmail_msg">
   auto R = parseRegister();<br class="gmail_msg">
   if (!R) return true;<br class="gmail_msg">
   assert(R->isReg());<br class="gmail_msg">
@@ -1305,20 +1302,43 @@ bool AMDGPUAsmParser::ParseRegister(unsi<br class="gmail_msg">
   return false;<br class="gmail_msg">
 }<br class="gmail_msg">
<br class="gmail_msg">
-bool AMDGPUAsmParser::AddNextRegisterToList(unsigned& Reg, unsigned& RegWidth, RegisterKind RegKind, unsigned Reg1, unsigned RegNum)<br class="gmail_msg">
-{<br class="gmail_msg">
+bool AMDGPUAsmParser::AddNextRegisterToList(unsigned &Reg, unsigned &RegWidth,<br class="gmail_msg">
+                                            RegisterKind RegKind, unsigned Reg1,<br class="gmail_msg">
+                                            unsigned RegNum) {<br class="gmail_msg">
   switch (RegKind) {<br class="gmail_msg">
   case IS_SPECIAL:<br class="gmail_msg">
-    if (Reg == AMDGPU::EXEC_LO && Reg1 == AMDGPU::EXEC_HI) { Reg = AMDGPU::EXEC; RegWidth = 2; return true; }<br class="gmail_msg">
-    if (Reg == AMDGPU::FLAT_SCR_LO && Reg1 == AMDGPU::FLAT_SCR_HI) { Reg = AMDGPU::FLAT_SCR; RegWidth = 2; return true; }<br class="gmail_msg">
-    if (Reg == AMDGPU::VCC_LO && Reg1 == AMDGPU::VCC_HI) { Reg = AMDGPU::VCC; RegWidth = 2; return true; }<br class="gmail_msg">
-    if (Reg == AMDGPU::TBA_LO && Reg1 == AMDGPU::TBA_HI) { Reg = AMDGPU::TBA; RegWidth = 2; return true; }<br class="gmail_msg">
-    if (Reg == AMDGPU::TMA_LO && Reg1 == AMDGPU::TMA_HI) { Reg = AMDGPU::TMA; RegWidth = 2; return true; }<br class="gmail_msg">
+    if (Reg == AMDGPU::EXEC_LO && Reg1 == AMDGPU::EXEC_HI) {<br class="gmail_msg">
+      Reg = AMDGPU::EXEC;<br class="gmail_msg">
+      RegWidth = 2;<br class="gmail_msg">
+      return true;<br class="gmail_msg">
+    }<br class="gmail_msg">
+    if (Reg == AMDGPU::FLAT_SCR_LO && Reg1 == AMDGPU::FLAT_SCR_HI) {<br class="gmail_msg">
+      Reg = AMDGPU::FLAT_SCR;<br class="gmail_msg">
+      RegWidth = 2;<br class="gmail_msg">
+      return true;<br class="gmail_msg">
+    }<br class="gmail_msg">
+    if (Reg == AMDGPU::VCC_LO && Reg1 == AMDGPU::VCC_HI) {<br class="gmail_msg">
+      Reg = AMDGPU::VCC;<br class="gmail_msg">
+      RegWidth = 2;<br class="gmail_msg">
+      return true;<br class="gmail_msg">
+    }<br class="gmail_msg">
+    if (Reg == AMDGPU::TBA_LO && Reg1 == AMDGPU::TBA_HI) {<br class="gmail_msg">
+      Reg = AMDGPU::TBA;<br class="gmail_msg">
+      RegWidth = 2;<br class="gmail_msg">
+      return true;<br class="gmail_msg">
+    }<br class="gmail_msg">
+    if (Reg == AMDGPU::TMA_LO && Reg1 == AMDGPU::TMA_HI) {<br class="gmail_msg">
+      Reg = AMDGPU::TMA;<br class="gmail_msg">
+      RegWidth = 2;<br class="gmail_msg">
+      return true;<br class="gmail_msg">
+    }<br class="gmail_msg">
     return false;<br class="gmail_msg">
   case IS_VGPR:<br class="gmail_msg">
   case IS_SGPR:<br class="gmail_msg">
   case IS_TTMP:<br class="gmail_msg">
-    if (Reg1 != Reg + RegWidth) { return false; }<br class="gmail_msg">
+    if (Reg1 != Reg + RegWidth) {<br class="gmail_msg">
+      return false;<br class="gmail_msg">
+    }<br class="gmail_msg">
     RegWidth++;<br class="gmail_msg">
     return true;<br class="gmail_msg">
   default:<br class="gmail_msg">
@@ -1326,8 +1346,9 @@ bool AMDGPUAsmParser::AddNextRegisterToL<br class="gmail_msg">
   }<br class="gmail_msg">
 }<br class="gmail_msg">
<br class="gmail_msg">
-bool AMDGPUAsmParser::ParseAMDGPURegister(RegisterKind& RegKind, unsigned& Reg, unsigned& RegNum, unsigned& RegWidth, unsigned *DwordRegIndex)<br class="gmail_msg">
-{<br class="gmail_msg">
+bool AMDGPUAsmParser::ParseAMDGPURegister(RegisterKind &RegKind, unsigned &Reg,<br class="gmail_msg">
+                                          unsigned &RegNum, unsigned &RegWidth,<br class="gmail_msg">
+                                          unsigned *DwordRegIndex) {<br class="gmail_msg">
   if (DwordRegIndex) { *DwordRegIndex = 0; }<br class="gmail_msg">
   const MCRegisterInfo *TRI = getContext().getRegisterInfo();<br class="gmail_msg">
   if (getLexer().is(AsmToken::Identifier)) {<br class="gmail_msg">
@@ -1528,7 +1549,8 @@ AMDGPUAsmParser::parseRegOrImm(OperandVe<br class="gmail_msg">
 }<br class="gmail_msg">
<br class="gmail_msg">
 OperandMatchResultTy<br class="gmail_msg">
-AMDGPUAsmParser::parseRegOrImmWithFPInputMods(OperandVector &Operands, bool AllowImm) {<br class="gmail_msg">
+AMDGPUAsmParser::parseRegOrImmWithFPInputMods(OperandVector &Operands,<br class="gmail_msg">
+                                              bool AllowImm) {<br class="gmail_msg">
   // XXX: During parsing we can't determine if minus sign means<br class="gmail_msg">
   // negate-modifier or negative immediate value.<br class="gmail_msg">
   // By default we suppose it is modifier.<br class="gmail_msg">
@@ -1539,7 +1561,8 @@ AMDGPUAsmParser::parseRegOrImmWithFPInpu<br class="gmail_msg">
     Negate = true;<br class="gmail_msg">
   }<br class="gmail_msg">
<br class="gmail_msg">
-  if (getLexer().getKind() == AsmToken::Identifier && Parser.getTok().getString() == "abs") {<br class="gmail_msg">
+  if (getLexer().getKind() == AsmToken::Identifier &&<br class="gmail_msg">
+      Parser.getTok().getString() == "abs") {<br class="gmail_msg">
     Parser.Lex();<br class="gmail_msg">
     Abs2 = true;<br class="gmail_msg">
     if (getLexer().isNot(AsmToken::LParen)) {<br class="gmail_msg">
@@ -1597,10 +1620,12 @@ AMDGPUAsmParser::parseRegOrImmWithFPInpu<br class="gmail_msg">
 }<br class="gmail_msg">
<br class="gmail_msg">
 OperandMatchResultTy<br class="gmail_msg">
-AMDGPUAsmParser::parseRegOrImmWithIntInputMods(OperandVector &Operands, bool AllowImm) {<br class="gmail_msg">
+AMDGPUAsmParser::parseRegOrImmWithIntInputMods(OperandVector &Operands,<br class="gmail_msg">
+                                               bool AllowImm) {<br class="gmail_msg">
   bool Sext = false;<br class="gmail_msg">
<br class="gmail_msg">
-  if (getLexer().getKind() == AsmToken::Identifier && Parser.getTok().getString() == "sext") {<br class="gmail_msg">
+  if (getLexer().getKind() == AsmToken::Identifier &&<br class="gmail_msg">
+      Parser.getTok().getString() == "sext") {<br class="gmail_msg">
     Parser.Lex();<br class="gmail_msg">
     Sext = true;<br class="gmail_msg">
     if (getLexer().isNot(AsmToken::LParen)) {<br class="gmail_msg">
@@ -1667,7 +1692,6 @@ OperandMatchResultTy AMDGPUAsmParser::pa<br class="gmail_msg">
 }<br class="gmail_msg">
<br class="gmail_msg">
 unsigned AMDGPUAsmParser::checkTargetMatchPredicate(MCInst &Inst) {<br class="gmail_msg">
-<br class="gmail_msg">
   uint64_t TSFlags = MII.get(Inst.getOpcode()).TSFlags;<br class="gmail_msg">
<br class="gmail_msg">
   if ((getForcedEncodingSize() == 32 && (TSFlags & SIInstrFlags::VOP3)) ||<br class="gmail_msg">
@@ -1799,7 +1823,6 @@ bool AMDGPUAsmParser::ParseAsAbsoluteExp<br class="gmail_msg">
   return false;<br class="gmail_msg">
 }<br class="gmail_msg">
<br class="gmail_msg">
-<br class="gmail_msg">
 bool AMDGPUAsmParser::ParseDirectiveMajorMinor(uint32_t &Major,<br class="gmail_msg">
                                                uint32_t &Minor) {<br class="gmail_msg">
   if (ParseAsAbsoluteExpression(Major))<br class="gmail_msg">
@@ -1816,7 +1839,6 @@ bool AMDGPUAsmParser::ParseDirectiveMajo<br class="gmail_msg">
 }<br class="gmail_msg">
<br class="gmail_msg">
 bool AMDGPUAsmParser::ParseDirectiveHSACodeObjectVersion() {<br class="gmail_msg">
-<br class="gmail_msg">
   uint32_t Major;<br class="gmail_msg">
   uint32_t Minor;<br class="gmail_msg">
<br class="gmail_msg">
@@ -2086,7 +2108,6 @@ bool AMDGPUAsmParser::subtargetHasRegist<br class="gmail_msg">
<br class="gmail_msg">
 OperandMatchResultTy<br class="gmail_msg">
 AMDGPUAsmParser::parseOperand(OperandVector &Operands, StringRef Mnemonic) {<br class="gmail_msg">
-<br class="gmail_msg">
   // Try to parse with a custom parser<br class="gmail_msg">
   OperandMatchResultTy ResTy = MatchOperandParserImpl(Operands, Mnemonic);<br class="gmail_msg">
<br class="gmail_msg">
<br class="gmail_msg">
Modified: llvm/trunk/lib/Target/AMDGPU/SIISelLowering.cpp<br class="gmail_msg">
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AMDGPU/SIISelLowering.cpp?rev=292688&r1=292687&r2=292688&view=diff" rel="noreferrer" class="gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AMDGPU/SIISelLowering.cpp?rev=292688&r1=292687&r2=292688&view=diff</a><br class="gmail_msg">
==============================================================================<br class="gmail_msg">
--- llvm/trunk/lib/Target/AMDGPU/SIISelLowering.cpp (original)<br class="gmail_msg">
+++ llvm/trunk/lib/Target/AMDGPU/SIISelLowering.cpp Fri Jan 20 18:53:49 2017<br class="gmail_msg">
@@ -15,7 +15,6 @@<br class="gmail_msg">
 #ifdef _MSC_VER<br class="gmail_msg">
 // Provide M_PI.<br class="gmail_msg">
 #define _USE_MATH_DEFINES<br class="gmail_msg">
-#include <cmath><br class="gmail_msg">
 #endif<br class="gmail_msg">
<br class="gmail_msg">
 #include "AMDGPU.h"<br class="gmail_msg">
@@ -26,15 +25,59 @@<br class="gmail_msg">
 #include "SIInstrInfo.h"<br class="gmail_msg">
 #include "SIMachineFunctionInfo.h"<br class="gmail_msg">
 #include "SIRegisterInfo.h"<br class="gmail_msg">
+#include "Utils/AMDGPUBaseInfo.h"<br class="gmail_msg">
+#include "llvm/ADT/APFloat.h"<br class="gmail_msg">
+#include "llvm/ADT/APInt.h"<br class="gmail_msg">
+#include "llvm/ADT/ArrayRef.h"<br class="gmail_msg">
 #include "llvm/ADT/BitVector.h"<br class="gmail_msg">
+#include "llvm/ADT/SmallVector.h"<br class="gmail_msg">
+#include "llvm/ADT/StringRef.h"<br class="gmail_msg">
 #include "llvm/ADT/StringSwitch.h"<br class="gmail_msg">
+#include "llvm/ADT/Twine.h"<br class="gmail_msg">
+#include "llvm/CodeGen/Analysis.h"<br class="gmail_msg">
 #include "llvm/CodeGen/CallingConvLower.h"<br class="gmail_msg">
+#include "llvm/CodeGen/DAGCombine.h"<br class="gmail_msg">
+#include "llvm/CodeGen/ISDOpcodes.h"<br class="gmail_msg">
+#include "llvm/CodeGen/MachineBasicBlock.h"<br class="gmail_msg">
+#include "llvm/CodeGen/MachineFrameInfo.h"<br class="gmail_msg">
+#include "llvm/CodeGen/MachineFunction.h"<br class="gmail_msg">
+#include "llvm/CodeGen/MachineInstr.h"<br class="gmail_msg">
 #include "llvm/CodeGen/MachineInstrBuilder.h"<br class="gmail_msg">
+#include "llvm/CodeGen/MachineMemOperand.h"<br class="gmail_msg">
+#include "llvm/CodeGen/MachineOperand.h"<br class="gmail_msg">
 #include "llvm/CodeGen/MachineRegisterInfo.h"<br class="gmail_msg">
+#include "llvm/CodeGen/MachineValueType.h"<br class="gmail_msg">
 #include "llvm/CodeGen/SelectionDAG.h"<br class="gmail_msg">
-#include "llvm/CodeGen/Analysis.h"<br class="gmail_msg">
+#include "llvm/CodeGen/SelectionDAGNodes.h"<br class="gmail_msg">
+#include "llvm/CodeGen/ValueTypes.h"<br class="gmail_msg">
+#include "llvm/IR/Constants.h"<br class="gmail_msg">
+#include "llvm/IR/DataLayout.h"<br class="gmail_msg">
+#include "llvm/IR/DebugLoc.h"<br class="gmail_msg">
+#include "llvm/IR/DerivedTypes.h"<br class="gmail_msg">
 #include "llvm/IR/DiagnosticInfo.h"<br class="gmail_msg">
 #include "llvm/IR/Function.h"<br class="gmail_msg">
+#include "llvm/IR/GlobalValue.h"<br class="gmail_msg">
+#include "llvm/IR/InstrTypes.h"<br class="gmail_msg">
+#include "llvm/IR/Instruction.h"<br class="gmail_msg">
+#include "llvm/IR/Instructions.h"<br class="gmail_msg">
+#include "llvm/IR/Type.h"<br class="gmail_msg">
+#include "llvm/Support/Casting.h"<br class="gmail_msg">
+#include "llvm/Support/CodeGen.h"<br class="gmail_msg">
+#include "llvm/Support/CommandLine.h"<br class="gmail_msg">
+#include "llvm/Support/Compiler.h"<br class="gmail_msg">
+#include "llvm/Support/ErrorHandling.h"<br class="gmail_msg">
+#include "llvm/Support/MathExtras.h"<br class="gmail_msg">
+#include "llvm/Target/TargetCallingConv.h"<br class="gmail_msg">
+#include "llvm/Target/TargetMachine.h"<br class="gmail_msg">
+#include "llvm/Target/TargetOptions.h"<br class="gmail_msg">
+#include "llvm/Target/TargetRegisterInfo.h"<br class="gmail_msg">
+#include <cassert><br class="gmail_msg">
+#include <cmath><br class="gmail_msg">
+#include <cstdint><br class="gmail_msg">
+#include <iterator><br class="gmail_msg">
+#include <tuple><br class="gmail_msg">
+#include <utility><br class="gmail_msg">
+#include <vector><br class="gmail_msg">
<br class="gmail_msg">
 using namespace llvm;<br class="gmail_msg">
<br class="gmail_msg">
@@ -43,7 +86,6 @@ static cl::opt<bool> EnableVGPRIndexMode<br class="gmail_msg">
   cl::desc("Use GPR indexing mode instead of movrel for vector indexing"),<br class="gmail_msg">
   cl::init(false));<br class="gmail_msg">
<br class="gmail_msg">
-<br class="gmail_msg">
 static unsigned findFirstFreeSGPR(CCState &CCInfo) {<br class="gmail_msg">
   unsigned NumSGPRs = AMDGPU::SGPR_32RegClass.getNumRegs();<br class="gmail_msg">
   for (unsigned Reg = 0; Reg < NumSGPRs; ++Reg) {<br class="gmail_msg">
@@ -110,7 +152,6 @@ SITargetLowering::SITargetLowering(const<br class="gmail_msg">
   setTruncStoreAction(MVT::v16i32, MVT::v16i8, Expand);<br class="gmail_msg">
   setTruncStoreAction(MVT::v32i32, MVT::v32i8, Expand);<br class="gmail_msg">
<br class="gmail_msg">
-<br class="gmail_msg">
   setOperationAction(ISD::GlobalAddress, MVT::i32, Custom);<br class="gmail_msg">
   setOperationAction(ISD::GlobalAddress, MVT::i64, Custom);<br class="gmail_msg">
   setOperationAction(ISD::ConstantPool, MVT::v2i64, Expand);<br class="gmail_msg">
@@ -441,7 +482,7 @@ bool SITargetLowering::isLegalAddressing<br class="gmail_msg">
     return false;<br class="gmail_msg">
<br class="gmail_msg">
   switch (AS) {<br class="gmail_msg">
-  case AMDGPUAS::GLOBAL_ADDRESS: {<br class="gmail_msg">
+  case AMDGPUAS::GLOBAL_ADDRESS:<br class="gmail_msg">
     if (Subtarget->getGeneration() >= SISubtarget::VOLCANIC_ISLANDS) {<br class="gmail_msg">
       // Assume the we will use FLAT for all global memory accesses<br class="gmail_msg">
       // on VI.<br class="gmail_msg">
@@ -456,8 +497,8 @@ bool SITargetLowering::isLegalAddressing<br class="gmail_msg">
     }<br class="gmail_msg">
<br class="gmail_msg">
     return isLegalMUBUFAddressingMode(AM);<br class="gmail_msg">
-  }<br class="gmail_msg">
-  case AMDGPUAS::CONSTANT_ADDRESS: {<br class="gmail_msg">
+<br class="gmail_msg">
+  case AMDGPUAS::CONSTANT_ADDRESS:<br class="gmail_msg">
     // If the offset isn't a multiple of 4, it probably isn't going to be<br class="gmail_msg">
     // correctly aligned.<br class="gmail_msg">
     // FIXME: Can we get the real alignment here?<br class="gmail_msg">
@@ -494,13 +535,12 @@ bool SITargetLowering::isLegalAddressing<br class="gmail_msg">
       return true;<br class="gmail_msg">
<br class="gmail_msg">
     return false;<br class="gmail_msg">
-  }<br class="gmail_msg">
<br class="gmail_msg">
   case AMDGPUAS::PRIVATE_ADDRESS:<br class="gmail_msg">
     return isLegalMUBUFAddressingMode(AM);<br class="gmail_msg">
<br class="gmail_msg">
   case AMDGPUAS::LOCAL_ADDRESS:<br class="gmail_msg">
-  case AMDGPUAS::REGION_ADDRESS: {<br class="gmail_msg">
+  case AMDGPUAS::REGION_ADDRESS:<br class="gmail_msg">
     // Basic, single offset DS instructions allow a 16-bit unsigned immediate<br class="gmail_msg">
     // field.<br class="gmail_msg">
     // XXX - If doing a 4-byte aligned 8-byte type access, we effectively have<br class="gmail_msg">
@@ -515,7 +555,7 @@ bool SITargetLowering::isLegalAddressing<br class="gmail_msg">
       return true;<br class="gmail_msg">
<br class="gmail_msg">
     return false;<br class="gmail_msg">
-  }<br class="gmail_msg">
+<br class="gmail_msg">
   case AMDGPUAS::FLAT_ADDRESS:<br class="gmail_msg">
   case AMDGPUAS::UNKNOWN_ADDRESS_SPACE:<br class="gmail_msg">
     // For an unknown address space, this usually means that this is for some<br class="gmail_msg">
@@ -897,7 +937,6 @@ SDValue SITargetLowering::LowerFormalArg<br class="gmail_msg">
   SmallVector<SDValue, 16> Chains;<br class="gmail_msg">
<br class="gmail_msg">
   for (unsigned i = 0, e = Ins.size(), ArgIdx = 0; i != e; ++i) {<br class="gmail_msg">
-<br class="gmail_msg">
     const ISD::InputArg &Arg = Ins[i];<br class="gmail_msg">
     if (Skipped[i]) {<br class="gmail_msg">
       InVals.push_back(DAG.getUNDEF(Arg.VT));<br class="gmail_msg">
@@ -954,7 +993,6 @@ SDValue SITargetLowering::LowerFormalArg<br class="gmail_msg">
     SDValue Val = DAG.getCopyFromReg(Chain, DL, Reg, VT);<br class="gmail_msg">
<br class="gmail_msg">
     if (Arg.VT.isVector()) {<br class="gmail_msg">
-<br class="gmail_msg">
       // Build a vector from the registers<br class="gmail_msg">
       Type *ParamType = FType->getParamType(Arg.getOrigArgIndex());<br class="gmail_msg">
       unsigned NumElements = ParamType->getVectorNumElements();<br class="gmail_msg">
@@ -1543,7 +1581,6 @@ static MachineBasicBlock *emitIndirectSr<br class="gmail_msg">
     return &MBB;<br class="gmail_msg">
   }<br class="gmail_msg">
<br class="gmail_msg">
-<br class="gmail_msg">
   const DebugLoc &DL = MI.getDebugLoc();<br class="gmail_msg">
   MachineBasicBlock::iterator I(&MI);<br class="gmail_msg">
<br class="gmail_msg">
@@ -1736,13 +1773,13 @@ MachineBasicBlock *SITargetLowering::Emi<br class="gmail_msg">
   }<br class="gmail_msg">
<br class="gmail_msg">
   switch (MI.getOpcode()) {<br class="gmail_msg">
-  case AMDGPU::SI_INIT_M0: {<br class="gmail_msg">
+  case AMDGPU::SI_INIT_M0:<br class="gmail_msg">
     BuildMI(*BB, MI.getIterator(), MI.getDebugLoc(),<br class="gmail_msg">
             TII->get(AMDGPU::S_MOV_B32), AMDGPU::M0)<br class="gmail_msg">
         .add(MI.getOperand(0));<br class="gmail_msg">
     MI.eraseFromParent();<br class="gmail_msg">
     return BB;<br class="gmail_msg">
-  }<br class="gmail_msg">
+<br class="gmail_msg">
   case AMDGPU::GET_GROUPSTATICSIZE: {<br class="gmail_msg">
     DebugLoc DL = MI.getDebugLoc();<br class="gmail_msg">
     BuildMI(*BB, MI, DL, TII->get(AMDGPU::S_MOV_B32))<br class="gmail_msg">
@@ -2001,7 +2038,6 @@ bool SITargetLowering::shouldEmitPCReloc<br class="gmail_msg">
 /// last parameter, also switches branch target with BR if the need arise<br class="gmail_msg">
 SDValue SITargetLowering::LowerBRCOND(SDValue BRCOND,<br class="gmail_msg">
                                       SelectionDAG &DAG) const {<br class="gmail_msg">
-<br class="gmail_msg">
   SDLoc DL(BRCOND);<br class="gmail_msg">
<br class="gmail_msg">
   SDNode *Intr = BRCOND.getOperand(1).getNode();<br class="gmail_msg">
@@ -2399,17 +2435,15 @@ SDValue SITargetLowering::LowerINTRINSIC<br class="gmail_msg">
   case Intrinsic::amdgcn_rsq:<br class="gmail_msg">
   case AMDGPUIntrinsic::AMDGPU_rsq: // Legacy name<br class="gmail_msg">
     return DAG.getNode(AMDGPUISD::RSQ, DL, VT, Op.getOperand(1));<br class="gmail_msg">
-  case Intrinsic::amdgcn_rsq_legacy: {<br class="gmail_msg">
+  case Intrinsic::amdgcn_rsq_legacy:<br class="gmail_msg">
     if (Subtarget->getGeneration() >= SISubtarget::VOLCANIC_ISLANDS)<br class="gmail_msg">
       return emitRemovedIntrinsicError(DAG, DL, VT);<br class="gmail_msg">
<br class="gmail_msg">
     return DAG.getNode(AMDGPUISD::RSQ_LEGACY, DL, VT, Op.getOperand(1));<br class="gmail_msg">
-  }<br class="gmail_msg">
-  case Intrinsic::amdgcn_rcp_legacy: {<br class="gmail_msg">
+  case Intrinsic::amdgcn_rcp_legacy:<br class="gmail_msg">
     if (Subtarget->getGeneration() >= SISubtarget::VOLCANIC_ISLANDS)<br class="gmail_msg">
       return emitRemovedIntrinsicError(DAG, DL, VT);<br class="gmail_msg">
     return DAG.getNode(AMDGPUISD::RCP_LEGACY, DL, VT, Op.getOperand(1));<br class="gmail_msg">
-  }<br class="gmail_msg">
   case Intrinsic::amdgcn_rsq_clamp: {<br class="gmail_msg">
     if (Subtarget->getGeneration() < SISubtarget::VOLCANIC_ISLANDS)<br class="gmail_msg">
       return DAG.getNode(AMDGPUISD::RSQ_CLAMP, DL, VT, Op.getOperand(1));<br class="gmail_msg">
@@ -2516,9 +2550,8 @@ SDValue SITargetLowering::LowerINTRINSIC<br class="gmail_msg">
     return DAG.getMemIntrinsicNode(AMDGPUISD::LOAD_CONSTANT, DL,<br class="gmail_msg">
                                    Op->getVTList(), Ops, VT, MMO);<br class="gmail_msg">
   }<br class="gmail_msg">
-  case AMDGPUIntrinsic::amdgcn_fdiv_fast: {<br class="gmail_msg">
+  case AMDGPUIntrinsic::amdgcn_fdiv_fast:<br class="gmail_msg">
     return lowerFDIV_FAST(Op, DAG);<br class="gmail_msg">
-  }<br class="gmail_msg">
   case AMDGPUIntrinsic::SI_vs_load_input:<br class="gmail_msg">
     return DAG.getNode(AMDGPUISD::LOAD_INPUT, DL, VT,<br class="gmail_msg">
                        Op.getOperand(1),<br class="gmail_msg">
@@ -2912,7 +2945,7 @@ SDValue SITargetLowering::LowerLOAD(SDVa<br class="gmail_msg">
     // loads.<br class="gmail_msg">
     //<br class="gmail_msg">
     LLVM_FALLTHROUGH;<br class="gmail_msg">
-  case AMDGPUAS::GLOBAL_ADDRESS: {<br class="gmail_msg">
+  case AMDGPUAS::GLOBAL_ADDRESS:<br class="gmail_msg">
     if (Subtarget->getScalarizeGlobalBehavior() && isMemOpUniform(Load) &&<br class="gmail_msg">
                   isMemOpHasNoClobberedMemOperand(Load))<br class="gmail_msg">
       return SDValue();<br class="gmail_msg">
@@ -2920,14 +2953,13 @@ SDValue SITargetLowering::LowerLOAD(SDVa<br class="gmail_msg">
     // have the same legalization requirements as global and private<br class="gmail_msg">
     // loads.<br class="gmail_msg">
     //<br class="gmail_msg">
-  }<br class="gmail_msg">
     LLVM_FALLTHROUGH;<br class="gmail_msg">
   case AMDGPUAS::FLAT_ADDRESS:<br class="gmail_msg">
     if (NumElements > 4)<br class="gmail_msg">
       return SplitVectorLoad(Op, DAG);<br class="gmail_msg">
     // v4 loads are supported for private and global memory.<br class="gmail_msg">
     return SDValue();<br class="gmail_msg">
-  case AMDGPUAS::PRIVATE_ADDRESS: {<br class="gmail_msg">
+  case AMDGPUAS::PRIVATE_ADDRESS:<br class="gmail_msg">
     // Depending on the setting of the private_element_size field in the<br class="gmail_msg">
     // resource descriptor, we can only make private accesses up to a certain<br class="gmail_msg">
     // size.<br class="gmail_msg">
@@ -2946,8 +2978,7 @@ SDValue SITargetLowering::LowerLOAD(SDVa<br class="gmail_msg">
     default:<br class="gmail_msg">
       llvm_unreachable("unsupported private_element_size");<br class="gmail_msg">
     }<br class="gmail_msg">
-  }<br class="gmail_msg">
-  case AMDGPUAS::LOCAL_ADDRESS: {<br class="gmail_msg">
+  case AMDGPUAS::LOCAL_ADDRESS:<br class="gmail_msg">
     if (NumElements > 2)<br class="gmail_msg">
       return SplitVectorLoad(Op, DAG);<br class="gmail_msg">
<br class="gmail_msg">
@@ -2956,7 +2987,6 @@ SDValue SITargetLowering::LowerLOAD(SDVa<br class="gmail_msg">
<br class="gmail_msg">
     // If properly aligned, if we split we might be able to use ds_read_b64.<br class="gmail_msg">
     return SplitVectorLoad(Op, DAG);<br class="gmail_msg">
-  }<br class="gmail_msg">
   default:<br class="gmail_msg">
     return SDValue();<br class="gmail_msg">
   }<br class="gmail_msg">
@@ -3454,27 +3484,24 @@ SDValue SITargetLowering::performUCharTo<br class="gmail_msg">
 static bool canFoldOffset(unsigned OffsetSize, unsigned AS,<br class="gmail_msg">
                           const SISubtarget &STI) {<br class="gmail_msg">
   switch (AS) {<br class="gmail_msg">
-  case AMDGPUAS::GLOBAL_ADDRESS: {<br class="gmail_msg">
+  case AMDGPUAS::GLOBAL_ADDRESS:<br class="gmail_msg">
     // MUBUF instructions a 12-bit offset in bytes.<br class="gmail_msg">
     return isUInt<12>(OffsetSize);<br class="gmail_msg">
-  }<br class="gmail_msg">
-  case AMDGPUAS::CONSTANT_ADDRESS: {<br class="gmail_msg">
+  case AMDGPUAS::CONSTANT_ADDRESS:<br class="gmail_msg">
     // SMRD instructions have an 8-bit offset in dwords on SI and<br class="gmail_msg">
     // a 20-bit offset in bytes on VI.<br class="gmail_msg">
     if (STI.getGeneration() >= SISubtarget::VOLCANIC_ISLANDS)<br class="gmail_msg">
       return isUInt<20>(OffsetSize);<br class="gmail_msg">
     else<br class="gmail_msg">
       return (OffsetSize % 4 == 0) && isUInt<8>(OffsetSize / 4);<br class="gmail_msg">
-  }<br class="gmail_msg">
   case AMDGPUAS::LOCAL_ADDRESS:<br class="gmail_msg">
-  case AMDGPUAS::REGION_ADDRESS: {<br class="gmail_msg">
+  case AMDGPUAS::REGION_ADDRESS:<br class="gmail_msg">
     // The single offset versions have a 16-bit offset in bytes.<br class="gmail_msg">
     return isUInt<16>(OffsetSize);<br class="gmail_msg">
-  }<br class="gmail_msg">
   case AMDGPUAS::PRIVATE_ADDRESS:<br class="gmail_msg">
   // Indirect register addressing does not use any offsets.<br class="gmail_msg">
   default:<br class="gmail_msg">
-    return 0;<br class="gmail_msg">
+    return false;<br class="gmail_msg">
   }<br class="gmail_msg">
 }<br class="gmail_msg">
<br class="gmail_msg">
@@ -4176,11 +4203,10 @@ SDValue SITargetLowering::PerformDAGComb<br class="gmail_msg">
   case ISD::ATOMIC_LOAD_UMIN:<br class="gmail_msg">
   case ISD::ATOMIC_LOAD_UMAX:<br class="gmail_msg">
   case AMDGPUISD::ATOMIC_INC:<br class="gmail_msg">
-  case AMDGPUISD::ATOMIC_DEC: { // TODO: Target mem intrinsics.<br class="gmail_msg">
+  case AMDGPUISD::ATOMIC_DEC: // TODO: Target mem intrinsics.<br class="gmail_msg">
     if (DCI.isBeforeLegalize())<br class="gmail_msg">
       break;<br class="gmail_msg">
     return performMemSDNodeCombine(cast<MemSDNode>(N), DCI);<br class="gmail_msg">
-  }<br class="gmail_msg">
   case ISD::AND:<br class="gmail_msg">
     return performAndCombine(N, DCI);<br class="gmail_msg">
   case ISD::OR:<br class="gmail_msg">
@@ -4291,7 +4317,6 @@ void SITargetLowering::adjustWritemask(M<br class="gmail_msg">
<br class="gmail_msg">
   // Update the users of the node with the new indices<br class="gmail_msg">
   for (unsigned i = 0, Idx = AMDGPU::sub0; i < 4; ++i) {<br class="gmail_msg">
-<br class="gmail_msg">
     SDNode *User = Users[i];<br class="gmail_msg">
     if (!User)<br class="gmail_msg">
       continue;<br class="gmail_msg">
<br class="gmail_msg">
Modified: llvm/trunk/lib/Target/AMDGPU/SIInsertSkips.cpp<br class="gmail_msg">
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AMDGPU/SIInsertSkips.cpp?rev=292688&r1=292687&r2=292688&view=diff" rel="noreferrer" class="gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AMDGPU/SIInsertSkips.cpp?rev=292688&r1=292687&r2=292688&view=diff</a><br class="gmail_msg">
==============================================================================<br class="gmail_msg">
--- llvm/trunk/lib/Target/AMDGPU/SIInsertSkips.cpp (original)<br class="gmail_msg">
+++ llvm/trunk/lib/Target/AMDGPU/SIInsertSkips.cpp Fri Jan 20 18:53:49 2017<br class="gmail_msg">
@@ -1,4 +1,4 @@<br class="gmail_msg">
-//===-- SIInsertSkips.cpp - Use predicates for control flow ----------===//<br class="gmail_msg">
+//===-- SIInsertSkips.cpp - Use predicates for control flow ---------------===//<br class="gmail_msg">
 //<br class="gmail_msg">
 //                     The LLVM Compiler Infrastructure<br class="gmail_msg">
 //<br class="gmail_msg">
@@ -12,33 +12,46 @@<br class="gmail_msg">
 /// branches when it's expected that jumping over the untaken control flow will<br class="gmail_msg">
 /// be cheaper than having every workitem no-op through it.<br class="gmail_msg">
 //<br class="gmail_msg">
+//===----------------------------------------------------------------------===//<br class="gmail_msg">
<br class="gmail_msg">
 #include "AMDGPU.h"<br class="gmail_msg">
 #include "AMDGPUSubtarget.h"<br class="gmail_msg">
 #include "SIInstrInfo.h"<br class="gmail_msg">
 #include "SIMachineFunctionInfo.h"<br class="gmail_msg">
-#include "llvm/CodeGen/MachineFrameInfo.h"<br class="gmail_msg">
+#include "llvm/ADT/SmallVector.h"<br class="gmail_msg">
+#include "llvm/ADT/StringRef.h"<br class="gmail_msg">
+#include "llvm/CodeGen/MachineBasicBlock.h"<br class="gmail_msg">
 #include "llvm/CodeGen/MachineFunction.h"<br class="gmail_msg">
 #include "llvm/CodeGen/MachineFunctionPass.h"<br class="gmail_msg">
+#include "llvm/CodeGen/MachineInstr.h"<br class="gmail_msg">
 #include "llvm/CodeGen/MachineInstrBuilder.h"<br class="gmail_msg">
+#include "llvm/CodeGen/MachineOperand.h"<br class="gmail_msg">
+#include "llvm/IR/CallingConv.h"<br class="gmail_msg">
+#include "llvm/IR/DebugLoc.h"<br class="gmail_msg">
 #include "llvm/MC/MCAsmInfo.h"<br class="gmail_msg">
+#include "llvm/Pass.h"<br class="gmail_msg">
+#include "llvm/Support/CommandLine.h"<br class="gmail_msg">
+#include "llvm/Target/TargetMachine.h"<br class="gmail_msg">
+#include <cassert><br class="gmail_msg">
+#include <cstdint><br class="gmail_msg">
+#include <iterator><br class="gmail_msg">
<br class="gmail_msg">
 using namespace llvm;<br class="gmail_msg">
<br class="gmail_msg">
 #define DEBUG_TYPE "si-insert-skips"<br class="gmail_msg">
<br class="gmail_msg">
-namespace {<br class="gmail_msg">
-<br class="gmail_msg">
 static cl::opt<unsigned> SkipThresholdFlag(<br class="gmail_msg">
   "amdgpu-skip-threshold",<br class="gmail_msg">
   cl::desc("Number of instructions before jumping over divergent control flow"),<br class="gmail_msg">
   cl::init(12), cl::Hidden);<br class="gmail_msg">
<br class="gmail_msg">
+namespace {<br class="gmail_msg">
+<br class="gmail_msg">
 class SIInsertSkips : public MachineFunctionPass {<br class="gmail_msg">
 private:<br class="gmail_msg">
-  const SIRegisterInfo *TRI;<br class="gmail_msg">
-  const SIInstrInfo *TII;<br class="gmail_msg">
-  unsigned SkipThreshold;<br class="gmail_msg">
+  const SIRegisterInfo *TRI = nullptr;<br class="gmail_msg">
+  const SIInstrInfo *TII = nullptr;<br class="gmail_msg">
+  unsigned SkipThreshold = 0;<br class="gmail_msg">
<br class="gmail_msg">
   bool shouldSkip(const MachineBasicBlock &From,<br class="gmail_msg">
                   const MachineBasicBlock &To) const;<br class="gmail_msg">
@@ -55,8 +68,7 @@ private:<br class="gmail_msg">
 public:<br class="gmail_msg">
   static char ID;<br class="gmail_msg">
<br class="gmail_msg">
-  SIInsertSkips() :<br class="gmail_msg">
-    MachineFunctionPass(ID), TRI(nullptr), TII(nullptr), SkipThreshold(0) { }<br class="gmail_msg">
+  SIInsertSkips() : MachineFunctionPass(ID) {}<br class="gmail_msg">
<br class="gmail_msg">
   bool runOnMachineFunction(MachineFunction &MF) override;<br class="gmail_msg">
<br class="gmail_msg">
@@ -69,7 +81,7 @@ public:<br class="gmail_msg">
   }<br class="gmail_msg">
 };<br class="gmail_msg">
<br class="gmail_msg">
-} // End anonymous namespace<br class="gmail_msg">
+} // end anonymous namespace<br class="gmail_msg">
<br class="gmail_msg">
 char SIInsertSkips::ID = 0;<br class="gmail_msg">
<br class="gmail_msg">
@@ -270,19 +282,19 @@ bool SIInsertSkips::runOnMachineFunction<br class="gmail_msg">
       MachineInstr &MI = *I;<br class="gmail_msg">
<br class="gmail_msg">
       switch (MI.getOpcode()) {<br class="gmail_msg">
-      case AMDGPU::SI_MASK_BRANCH: {<br class="gmail_msg">
+      case AMDGPU::SI_MASK_BRANCH:<br class="gmail_msg">
         ExecBranchStack.push_back(MI.getOperand(0).getMBB());<br class="gmail_msg">
         MadeChange |= skipMaskBranch(MI, MBB);<br class="gmail_msg">
         break;<br class="gmail_msg">
-      }<br class="gmail_msg">
-      case AMDGPU::S_BRANCH: {<br class="gmail_msg">
+<br class="gmail_msg">
+      case AMDGPU::S_BRANCH:<br class="gmail_msg">
         // Optimize out branches to the next block.<br class="gmail_msg">
         // FIXME: Shouldn't this be handled by BranchFolding?<br class="gmail_msg">
         if (MBB.isLayoutSuccessor(MI.getOperand(0).getMBB()))<br class="gmail_msg">
           MI.eraseFromParent();<br class="gmail_msg">
         break;<br class="gmail_msg">
-      }<br class="gmail_msg">
-      case AMDGPU::SI_KILL_TERMINATOR: {<br class="gmail_msg">
+<br class="gmail_msg">
+      case AMDGPU::SI_KILL_TERMINATOR:<br class="gmail_msg">
         MadeChange = true;<br class="gmail_msg">
         kill(MI);<br class="gmail_msg">
<br class="gmail_msg">
@@ -298,8 +310,8 @@ bool SIInsertSkips::runOnMachineFunction<br class="gmail_msg">
<br class="gmail_msg">
         MI.eraseFromParent();<br class="gmail_msg">
         break;<br class="gmail_msg">
-      }<br class="gmail_msg">
-      case AMDGPU::SI_RETURN: {<br class="gmail_msg">
+<br class="gmail_msg">
+      case AMDGPU::SI_RETURN:<br class="gmail_msg">
         // FIXME: Should move somewhere else<br class="gmail_msg">
         assert(!MF.getInfo<SIMachineFunctionInfo>()->returnsVoid());<br class="gmail_msg">
<br class="gmail_msg">
@@ -318,7 +330,8 @@ bool SIInsertSkips::runOnMachineFunction<br class="gmail_msg">
             .addMBB(EmptyMBBAtEnd);<br class="gmail_msg">
           I->eraseFromParent();<br class="gmail_msg">
         }<br class="gmail_msg">
-      }<br class="gmail_msg">
+        break;<br class="gmail_msg">
+<br class="gmail_msg">
       default:<br class="gmail_msg">
         break;<br class="gmail_msg">
       }<br class="gmail_msg">
<br class="gmail_msg">
Modified: llvm/trunk/lib/Target/AMDGPU/SIInsertWaits.cpp<br class="gmail_msg">
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AMDGPU/SIInsertWaits.cpp?rev=292688&r1=292687&r2=292688&view=diff" rel="noreferrer" class="gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AMDGPU/SIInsertWaits.cpp?rev=292688&r1=292687&r2=292688&view=diff</a><br class="gmail_msg">
==============================================================================<br class="gmail_msg">
--- llvm/trunk/lib/Target/AMDGPU/SIInsertWaits.cpp (original)<br class="gmail_msg">
+++ llvm/trunk/lib/Target/AMDGPU/SIInsertWaits.cpp Fri Jan 20 18:53:49 2017<br class="gmail_msg">
@@ -21,11 +21,28 @@<br class="gmail_msg">
 #include "SIDefines.h"<br class="gmail_msg">
 #include "SIInstrInfo.h"<br class="gmail_msg">
 #include "SIMachineFunctionInfo.h"<br class="gmail_msg">
+#include "SIRegisterInfo.h"<br class="gmail_msg">
 #include "Utils/AMDGPUBaseInfo.h"<br class="gmail_msg">
+#include "llvm/ADT/SmallVector.h"<br class="gmail_msg">
+#include "llvm/ADT/StringRef.h"<br class="gmail_msg">
+#include "llvm/CodeGen/MachineBasicBlock.h"<br class="gmail_msg">
 #include "llvm/CodeGen/MachineFunction.h"<br class="gmail_msg">
 #include "llvm/CodeGen/MachineFunctionPass.h"<br class="gmail_msg">
+#include "llvm/CodeGen/MachineInstr.h"<br class="gmail_msg">
 #include "llvm/CodeGen/MachineInstrBuilder.h"<br class="gmail_msg">
+#include "llvm/CodeGen/MachineOperand.h"<br class="gmail_msg">
 #include "llvm/CodeGen/MachineRegisterInfo.h"<br class="gmail_msg">
+#include "llvm/IR/DebugLoc.h"<br class="gmail_msg">
+#include "llvm/Pass.h"<br class="gmail_msg">
+#include "llvm/Support/Debug.h"<br class="gmail_msg">
+#include "llvm/Support/raw_ostream.h"<br class="gmail_msg">
+#include "llvm/Target/TargetRegisterInfo.h"<br class="gmail_msg">
+#include <algorithm><br class="gmail_msg">
+#include <cassert><br class="gmail_msg">
+#include <cstdint><br class="gmail_msg">
+#include <cstring><br class="gmail_msg">
+#include <new><br class="gmail_msg">
+#include <utility><br class="gmail_msg">
<br class="gmail_msg">
 #define DEBUG_TYPE "si-insert-waits"<br class="gmail_msg">
<br class="gmail_msg">
@@ -42,7 +59,6 @@ typedef union {<br class="gmail_msg">
     unsigned LGKM;<br class="gmail_msg">
   } Named;<br class="gmail_msg">
   unsigned Array[3];<br class="gmail_msg">
-<br class="gmail_msg">
 } Counters;<br class="gmail_msg">
<br class="gmail_msg">
 typedef enum {<br class="gmail_msg">
@@ -55,11 +71,10 @@ typedef Counters RegCounters[512];<br class="gmail_msg">
 typedef std::pair<unsigned, unsigned> RegInterval;<br class="gmail_msg">
<br class="gmail_msg">
 class SIInsertWaits : public MachineFunctionPass {<br class="gmail_msg">
-<br class="gmail_msg">
 private:<br class="gmail_msg">
-  const SISubtarget *ST;<br class="gmail_msg">
-  const SIInstrInfo *TII;<br class="gmail_msg">
-  const SIRegisterInfo *TRI;<br class="gmail_msg">
+  const SISubtarget *ST = nullptr;<br class="gmail_msg">
+  const SIInstrInfo *TII = nullptr;<br class="gmail_msg">
+  const SIRegisterInfo *TRI = nullptr;<br class="gmail_msg">
   const MachineRegisterInfo *MRI;<br class="gmail_msg">
   IsaVersion IV;<br class="gmail_msg">
<br class="gmail_msg">
@@ -86,7 +101,7 @@ private:<br class="gmail_msg">
   RegCounters DefinedRegs;<br class="gmail_msg">
<br class="gmail_msg">
   /// \brief Different export instruction types seen since last wait.<br class="gmail_msg">
-  unsigned ExpInstrTypesSeen;<br class="gmail_msg">
+  unsigned ExpInstrTypesSeen = 0;<br class="gmail_msg">
<br class="gmail_msg">
   /// \brief Type of the last opcode.<br class="gmail_msg">
   InstType LastOpcodeType;<br class="gmail_msg">
@@ -100,7 +115,7 @@ private:<br class="gmail_msg">
   bool ReturnsVoid;<br class="gmail_msg">
<br class="gmail_msg">
   /// Whether the VCCZ bit is possibly corrupt<br class="gmail_msg">
-  bool VCCZCorrupt;<br class="gmail_msg">
+  bool VCCZCorrupt = false;<br class="gmail_msg">
<br class="gmail_msg">
   /// \brief Get increment/decrement amount for this instruction.<br class="gmail_msg">
   Counters getHwCounts(MachineInstr &MI);<br class="gmail_msg">
@@ -141,13 +156,7 @@ private:<br class="gmail_msg">
 public:<br class="gmail_msg">
   static char ID;<br class="gmail_msg">
<br class="gmail_msg">
-  SIInsertWaits() :<br class="gmail_msg">
-    MachineFunctionPass(ID),<br class="gmail_msg">
-    ST(nullptr),<br class="gmail_msg">
-    TII(nullptr),<br class="gmail_msg">
-    TRI(nullptr),<br class="gmail_msg">
-    ExpInstrTypesSeen(0),<br class="gmail_msg">
-    VCCZCorrupt(false) { }<br class="gmail_msg">
+  SIInsertWaits() : MachineFunctionPass(ID) {}<br class="gmail_msg">
<br class="gmail_msg">
   bool runOnMachineFunction(MachineFunction &MF) override;<br class="gmail_msg">
<br class="gmail_msg">
@@ -161,7 +170,7 @@ public:<br class="gmail_msg">
   }<br class="gmail_msg">
 };<br class="gmail_msg">
<br class="gmail_msg">
-} // End anonymous namespace<br class="gmail_msg">
+} // end anonymous namespace<br class="gmail_msg">
<br class="gmail_msg">
 INITIALIZE_PASS_BEGIN(SIInsertWaits, DEBUG_TYPE,<br class="gmail_msg">
                       "SI Insert Waits", false, false)<br class="gmail_msg">
@@ -294,7 +303,6 @@ RegInterval SIInsertWaits::getRegInterva<br class="gmail_msg">
 void SIInsertWaits::pushInstruction(MachineBasicBlock &MBB,<br class="gmail_msg">
                                     MachineBasicBlock::iterator I,<br class="gmail_msg">
                                     const Counters &Increment) {<br class="gmail_msg">
-<br class="gmail_msg">
   // Get the hardware counter increments and sum them up<br class="gmail_msg">
   Counters Limit = ZeroCounts;<br class="gmail_msg">
   unsigned Sum = 0;<br class="gmail_msg">
@@ -366,7 +374,6 @@ void SIInsertWaits::pushInstruction(Mach<br class="gmail_msg">
 bool SIInsertWaits::insertWait(MachineBasicBlock &MBB,<br class="gmail_msg">
                                MachineBasicBlock::iterator I,<br class="gmail_msg">
                                const Counters &Required) {<br class="gmail_msg">
-<br class="gmail_msg">
   // End of program? No need to wait on anything<br class="gmail_msg">
   // A function not returning void needs to wait, because other bytecode will<br class="gmail_msg">
   // be appended after it and we don't know what it will be.<br class="gmail_msg">
@@ -393,7 +400,6 @@ bool SIInsertWaits::insertWait(MachineBa<br class="gmail_msg">
   bool NeedWait = false;<br class="gmail_msg">
<br class="gmail_msg">
   for (unsigned i = 0; i < 3; ++i) {<br class="gmail_msg">
-<br class="gmail_msg">
     if (Required.Array[i] <= WaitedOn.Array[i])<br class="gmail_msg">
       continue;<br class="gmail_msg">
<br class="gmail_msg">
@@ -434,7 +440,6 @@ bool SIInsertWaits::insertWait(MachineBa<br class="gmail_msg">
<br class="gmail_msg">
 /// \brief helper function for handleOperands<br class="gmail_msg">
 static void increaseCounters(Counters &Dst, const Counters &Src) {<br class="gmail_msg">
-<br class="gmail_msg">
   for (unsigned i = 0; i < 3; ++i)<br class="gmail_msg">
     Dst.Array[i] = std::max(Dst.Array[i], Src.Array[i]);<br class="gmail_msg">
 }<br class="gmail_msg">
@@ -468,7 +473,6 @@ void SIInsertWaits::handleExistingWait(M<br class="gmail_msg">
 }<br class="gmail_msg">
<br class="gmail_msg">
 Counters SIInsertWaits::handleOperands(MachineInstr &MI) {<br class="gmail_msg">
-<br class="gmail_msg">
   Counters Result = ZeroCounts;<br class="gmail_msg">
<br class="gmail_msg">
   // For each register affected by this instruction increase the result<br class="gmail_msg">
@@ -484,7 +488,6 @@ Counters SIInsertWaits::handleOperands(M<br class="gmail_msg">
     const TargetRegisterClass *RC = TII->getOpRegClass(MI, i);<br class="gmail_msg">
     RegInterval Interval = getRegInterval(RC, Op);<br class="gmail_msg">
     for (unsigned j = Interval.first; j < Interval.second; ++j) {<br class="gmail_msg">
-<br class="gmail_msg">
       if (Op.isDef()) {<br class="gmail_msg">
         increaseCounters(Result, UsedRegs[j]);<br class="gmail_msg">
         increaseCounters(Result, DefinedRegs[j]);<br class="gmail_msg">
<br class="gmail_msg">
Modified: llvm/trunk/lib/Target/AMDGPU/SILoadStoreOptimizer.cpp<br class="gmail_msg">
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AMDGPU/SILoadStoreOptimizer.cpp?rev=292688&r1=292687&r2=292688&view=diff" rel="noreferrer" class="gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AMDGPU/SILoadStoreOptimizer.cpp?rev=292688&r1=292687&r2=292688&view=diff</a><br class="gmail_msg">
==============================================================================<br class="gmail_msg">
--- llvm/trunk/lib/Target/AMDGPU/SILoadStoreOptimizer.cpp (original)<br class="gmail_msg">
+++ llvm/trunk/lib/Target/AMDGPU/SILoadStoreOptimizer.cpp Fri Jan 20 18:53:49 2017<br class="gmail_msg">
@@ -39,15 +39,27 @@<br class="gmail_msg">
 #include "AMDGPUSubtarget.h"<br class="gmail_msg">
 #include "SIInstrInfo.h"<br class="gmail_msg">
 #include "SIRegisterInfo.h"<br class="gmail_msg">
-#include "llvm/CodeGen/LiveIntervalAnalysis.h"<br class="gmail_msg">
-#include "llvm/CodeGen/LiveVariables.h"<br class="gmail_msg">
+#include "Utils/AMDGPUBaseInfo.h"<br class="gmail_msg">
+#include "llvm/ADT/ArrayRef.h"<br class="gmail_msg">
+#include "llvm/ADT/SmallVector.h"<br class="gmail_msg">
+#include "llvm/ADT/StringRef.h"<br class="gmail_msg">
+#include "llvm/Analysis/AliasAnalysis.h"<br class="gmail_msg">
+#include "llvm/CodeGen/MachineBasicBlock.h"<br class="gmail_msg">
 #include "llvm/CodeGen/MachineFunction.h"<br class="gmail_msg">
 #include "llvm/CodeGen/MachineFunctionPass.h"<br class="gmail_msg">
+#include "llvm/CodeGen/MachineInstr.h"<br class="gmail_msg">
 #include "llvm/CodeGen/MachineInstrBuilder.h"<br class="gmail_msg">
+#include "llvm/CodeGen/MachineOperand.h"<br class="gmail_msg">
 #include "llvm/CodeGen/MachineRegisterInfo.h"<br class="gmail_msg">
+#include "llvm/IR/DebugLoc.h"<br class="gmail_msg">
+#include "llvm/Pass.h"<br class="gmail_msg">
 #include "llvm/Support/Debug.h"<br class="gmail_msg">
+#include "llvm/Support/MathExtras.h"<br class="gmail_msg">
 #include "llvm/Support/raw_ostream.h"<br class="gmail_msg">
 #include "llvm/Target/TargetMachine.h"<br class="gmail_msg">
+#include <cassert><br class="gmail_msg">
+#include <iterator><br class="gmail_msg">
+#include <utility><br class="gmail_msg">
<br class="gmail_msg">
 using namespace llvm;<br class="gmail_msg">
<br class="gmail_msg">
@@ -57,10 +69,10 @@ namespace {<br class="gmail_msg">
<br class="gmail_msg">
 class SILoadStoreOptimizer : public MachineFunctionPass {<br class="gmail_msg">
 private:<br class="gmail_msg">
-  const SIInstrInfo *TII;<br class="gmail_msg">
-  const SIRegisterInfo *TRI;<br class="gmail_msg">
-  MachineRegisterInfo *MRI;<br class="gmail_msg">
-  AliasAnalysis *AA;<br class="gmail_msg">
+  const SIInstrInfo *TII = nullptr;<br class="gmail_msg">
+  const SIRegisterInfo *TRI = nullptr;<br class="gmail_msg">
+  MachineRegisterInfo *MRI = nullptr;<br class="gmail_msg">
+  AliasAnalysis *AA = nullptr;<br class="gmail_msg">
<br class="gmail_msg">
   static bool offsetsCanBeCombined(unsigned Offset0,<br class="gmail_msg">
                                    unsigned Offset1,<br class="gmail_msg">
@@ -86,9 +98,7 @@ private:<br class="gmail_msg">
 public:<br class="gmail_msg">
   static char ID;<br class="gmail_msg">
<br class="gmail_msg">
-  SILoadStoreOptimizer()<br class="gmail_msg">
-      : MachineFunctionPass(ID), TII(nullptr), TRI(nullptr), MRI(nullptr),<br class="gmail_msg">
-        AA(nullptr) {}<br class="gmail_msg">
+  SILoadStoreOptimizer() : MachineFunctionPass(ID) {}<br class="gmail_msg">
<br class="gmail_msg">
   SILoadStoreOptimizer(const TargetMachine &TM_) : MachineFunctionPass(ID) {<br class="gmail_msg">
     initializeSILoadStoreOptimizerPass(*PassRegistry::getPassRegistry());<br class="gmail_msg">
@@ -108,7 +118,7 @@ public:<br class="gmail_msg">
   }<br class="gmail_msg">
 };<br class="gmail_msg">
<br class="gmail_msg">
-} // End anonymous namespace.<br class="gmail_msg">
+} // end anonymous namespace.<br class="gmail_msg">
<br class="gmail_msg">
 INITIALIZE_PASS_BEGIN(SILoadStoreOptimizer, DEBUG_TYPE,<br class="gmail_msg">
                       "SI Load / Store Optimizer", false, false)<br class="gmail_msg">
@@ -141,11 +151,10 @@ static void addDefsToList(const MachineI<br class="gmail_msg">
   }<br class="gmail_msg">
 }<br class="gmail_msg">
<br class="gmail_msg">
-static bool memAccessesCanBeReordered(<br class="gmail_msg">
-  MachineBasicBlock::iterator A,<br class="gmail_msg">
-  MachineBasicBlock::iterator B,<br class="gmail_msg">
-  const SIInstrInfo *TII,<br class="gmail_msg">
-  llvm::AliasAnalysis * AA) {<br class="gmail_msg">
+static bool memAccessesCanBeReordered(MachineBasicBlock::iterator A,<br class="gmail_msg">
+                                      MachineBasicBlock::iterator B,<br class="gmail_msg">
+                                      const SIInstrInfo *TII,<br class="gmail_msg">
+                                      AliasAnalysis * AA) {<br class="gmail_msg">
   return (TII->areMemAccessesTriviallyDisjoint(*A, *B, AA) ||<br class="gmail_msg">
     // RAW or WAR - cannot reorder<br class="gmail_msg">
     // WAW - cannot reorder<br class="gmail_msg">
@@ -179,7 +188,6 @@ canMoveInstsAcrossMemOp(MachineInstr &Me<br class="gmail_msg">
                         ArrayRef<MachineInstr*> InstsToMove,<br class="gmail_msg">
                         const SIInstrInfo *TII,<br class="gmail_msg">
                         AliasAnalysis *AA) {<br class="gmail_msg">
-<br class="gmail_msg">
   assert(MemOp.mayLoadOrStore());<br class="gmail_msg">
<br class="gmail_msg">
   for (MachineInstr *InstToMove : InstsToMove) {<br class="gmail_msg">
@@ -230,7 +238,6 @@ SILoadStoreOptimizer::findMatchingDSInst<br class="gmail_msg">
   addDefsToList(*I, DefsToMove);<br class="gmail_msg">
<br class="gmail_msg">
   for ( ; MBBI != E; ++MBBI) {<br class="gmail_msg">
-<br class="gmail_msg">
     if (MBBI->getOpcode() != I->getOpcode()) {<br class="gmail_msg">
<br class="gmail_msg">
       // This is not a matching DS instruction, but we can keep looking as<br class="gmail_msg">
<br class="gmail_msg">
Modified: llvm/trunk/lib/Target/AMDGPU/SIMachineFunctionInfo.h<br class="gmail_msg">
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AMDGPU/SIMachineFunctionInfo.h?rev=292688&r1=292687&r2=292688&view=diff" rel="noreferrer" class="gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AMDGPU/SIMachineFunctionInfo.h?rev=292688&r1=292687&r2=292688&view=diff</a><br class="gmail_msg">
==============================================================================<br class="gmail_msg">
--- llvm/trunk/lib/Target/AMDGPU/SIMachineFunctionInfo.h (original)<br class="gmail_msg">
+++ llvm/trunk/lib/Target/AMDGPU/SIMachineFunctionInfo.h Fri Jan 20 18:53:49 2017<br class="gmail_msg">
@@ -16,13 +16,16 @@<br class="gmail_msg">
<br class="gmail_msg">
 #include "AMDGPUMachineFunction.h"<br class="gmail_msg">
 #include "SIRegisterInfo.h"<br class="gmail_msg">
+#include "llvm/CodeGen/PseudoSourceValue.h"<br class="gmail_msg">
+#include "llvm/MC/MCRegisterInfo.h"<br class="gmail_msg">
+#include "llvm/Support/ErrorHandling.h"<br class="gmail_msg">
 #include <array><br class="gmail_msg">
+#include <cassert><br class="gmail_msg">
 #include <map><br class="gmail_msg">
+#include <utility><br class="gmail_msg">
<br class="gmail_msg">
 namespace llvm {<br class="gmail_msg">
<br class="gmail_msg">
-class MachineRegisterInfo;<br class="gmail_msg">
-<br class="gmail_msg">
 class AMDGPUImagePseudoSourceValue : public PseudoSourceValue {<br class="gmail_msg">
 public:<br class="gmail_msg">
   explicit AMDGPUImagePseudoSourceValue() :<br class="gmail_msg">
@@ -174,10 +177,12 @@ private:<br class="gmail_msg">
<br class="gmail_msg">
 public:<br class="gmail_msg">
   struct SpilledReg {<br class="gmail_msg">
-    unsigned VGPR;<br class="gmail_msg">
-    int Lane;<br class="gmail_msg">
+    unsigned VGPR = AMDGPU::NoRegister;<br class="gmail_msg">
+    int Lane = -1;<br class="gmail_msg">
+<br class="gmail_msg">
+    SpilledReg() = default;<br class="gmail_msg">
     SpilledReg(unsigned R, int L) : VGPR (R), Lane (L) { }<br class="gmail_msg">
-    SpilledReg() : VGPR(AMDGPU::NoRegister), Lane(-1) { }<br class="gmail_msg">
+<br class="gmail_msg">
     bool hasLane() { return Lane != -1;}<br class="gmail_msg">
     bool hasReg() { return VGPR != AMDGPU::NoRegister;}<br class="gmail_msg">
   };<br class="gmail_msg">
@@ -185,6 +190,7 @@ public:<br class="gmail_msg">
   // SIMachineFunctionInfo definition<br class="gmail_msg">
<br class="gmail_msg">
   SIMachineFunctionInfo(const MachineFunction &MF);<br class="gmail_msg">
+<br class="gmail_msg">
   SpilledReg getSpilledReg(MachineFunction *MF, unsigned FrameIndex,<br class="gmail_msg">
                            unsigned SubIdx);<br class="gmail_msg">
   bool hasCalculatedTID() const { return TIDReg != AMDGPU::NoRegister; };<br class="gmail_msg">
@@ -495,6 +501,6 @@ public:<br class="gmail_msg">
   }<br class="gmail_msg">
 };<br class="gmail_msg">
<br class="gmail_msg">
-} // End namespace llvm<br class="gmail_msg">
+} // end namespace llvm<br class="gmail_msg">
<br class="gmail_msg">
-#endif<br class="gmail_msg">
+#endif // LLVM_LIB_TARGET_AMDGPU_SIMACHINEFUNCTIONINFO_H<br class="gmail_msg">
<br class="gmail_msg">
Modified: llvm/trunk/lib/Target/AMDGPU/SIMachineScheduler.h<br class="gmail_msg">
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AMDGPU/SIMachineScheduler.h?rev=292688&r1=292687&r2=292688&view=diff" rel="noreferrer" class="gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AMDGPU/SIMachineScheduler.h?rev=292688&r1=292687&r2=292688&view=diff</a><br class="gmail_msg">
==============================================================================<br class="gmail_msg">
--- llvm/trunk/lib/Target/AMDGPU/SIMachineScheduler.h (original)<br class="gmail_msg">
+++ llvm/trunk/lib/Target/AMDGPU/SIMachineScheduler.h Fri Jan 20 18:53:49 2017<br class="gmail_msg">
@@ -40,13 +40,12 @@ enum SIScheduleCandReason {<br class="gmail_msg">
<br class="gmail_msg">
 struct SISchedulerCandidate {<br class="gmail_msg">
   // The reason for this candidate.<br class="gmail_msg">
-  SIScheduleCandReason Reason;<br class="gmail_msg">
+  SIScheduleCandReason Reason = NoCand;<br class="gmail_msg">
<br class="gmail_msg">
   // Set of reasons that apply to multiple candidates.<br class="gmail_msg">
-  uint32_t RepeatReasonSet;<br class="gmail_msg">
+  uint32_t RepeatReasonSet = 0;<br class="gmail_msg">
<br class="gmail_msg">
-  SISchedulerCandidate()<br class="gmail_msg">
-    :  Reason(NoCand), RepeatReasonSet(0) {}<br class="gmail_msg">
+  SISchedulerCandidate() = default;<br class="gmail_msg">
<br class="gmail_msg">
   bool isRepeat(SIScheduleCandReason R) { return RepeatReasonSet & (1 << R); }<br class="gmail_msg">
   void setRepeat(SIScheduleCandReason R) { RepeatReasonSet |= (1 << R); }<br class="gmail_msg">
@@ -84,8 +83,8 @@ class SIScheduleBlock {<br class="gmail_msg">
   std::set<unsigned> LiveInRegs;<br class="gmail_msg">
   std::set<unsigned> LiveOutRegs;<br class="gmail_msg">
<br class="gmail_msg">
-  bool Scheduled;<br class="gmail_msg">
-  bool HighLatencyBlock;<br class="gmail_msg">
+  bool Scheduled = false;<br class="gmail_msg">
+  bool HighLatencyBlock = false;<br class="gmail_msg">
<br class="gmail_msg">
   std::vector<unsigned> HasLowLatencyNonWaitedParent;<br class="gmail_msg">
<br class="gmail_msg">
@@ -94,13 +93,12 @@ class SIScheduleBlock {<br class="gmail_msg">
<br class="gmail_msg">
   std::vector<SIScheduleBlock*> Preds;  // All blocks predecessors.<br class="gmail_msg">
   std::vector<SIScheduleBlock*> Succs;  // All blocks successors.<br class="gmail_msg">
-  unsigned NumHighLatencySuccessors;<br class="gmail_msg">
+  unsigned NumHighLatencySuccessors = 0;<br class="gmail_msg">
<br class="gmail_msg">
 public:<br class="gmail_msg">
   SIScheduleBlock(SIScheduleDAGMI *DAG, SIScheduleBlockCreator *BC,<br class="gmail_msg">
                   unsigned ID):<br class="gmail_msg">
-    DAG(DAG), BC(BC), TopRPTracker(TopPressure), Scheduled(false),<br class="gmail_msg">
-    HighLatencyBlock(false), ID(ID), NumHighLatencySuccessors(0) {}<br class="gmail_msg">
+    DAG(DAG), BC(BC), TopRPTracker(TopPressure), ID(ID) {}<br class="gmail_msg">
<br class="gmail_msg">
   ~SIScheduleBlock() = default;<br class="gmail_msg">
<br class="gmail_msg">
@@ -213,9 +211,9 @@ struct SIScheduleBlocks {<br class="gmail_msg">
 };<br class="gmail_msg">
<br class="gmail_msg">
 enum SISchedulerBlockCreatorVariant {<br class="gmail_msg">
-    LatenciesAlone,<br class="gmail_msg">
-    LatenciesGrouped,<br class="gmail_msg">
-    LatenciesAlonePlusConsecutive<br class="gmail_msg">
+  LatenciesAlone,<br class="gmail_msg">
+  LatenciesGrouped,<br class="gmail_msg">
+  LatenciesAlonePlusConsecutive<br class="gmail_msg">
 };<br class="gmail_msg">
<br class="gmail_msg">
 class SIScheduleBlockCreator {<br class="gmail_msg">
<br class="gmail_msg">
<br class="gmail_msg">
_______________________________________________<br class="gmail_msg">
llvm-commits mailing list<br class="gmail_msg">
<a href="mailto:llvm-commits@lists.llvm.org" class="gmail_msg" target="_blank">llvm-commits@lists.llvm.org</a><br class="gmail_msg">
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" class="gmail_msg" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits</a><br class="gmail_msg">
</blockquote></div><div dir="ltr">-- <br></div><div data-smartmail="gmail_signature"><div dir="ltr">Mike<br>Sent from phone</div></div>