SuccessChanges

Changes from Git (git http://labmaster3.local/git/llvm-project.git)

Summary

  1. Re-land [Debug][CodeView] Emit fully qualified names for globals (details)
  2. [BPF] Prevent disassembly segfault for NOP insn (details)
  3. [PowerPC][MachineCombiner] add testcase for reassociating FMA - NFC (details)
  4. [TargetInstrInfo] add override function setSpecialOperandAttr - NFC (details)
  5. fix build failure due to commit rGddcb3cf213e8 (details)
Commit 47cc6db928d063d96e11e70c196bd5601b2bdd06 by rnk
Re-land [Debug][CodeView] Emit fully qualified names for globals

This reverts commit 525a591f0f48b9d54018bf5245f2abee09c9c1c8.

Fixed an issue with pointers to members based on typedefs. In this case,
LLVM would emit a second UDT. I fixed it by not passing the class type
to getTypeIndex when the base type is not a function type. lowerType
only uses the class type for direct function types. This suggests if we
have a PMF with a function typedef, there may be an issue, but that can
be solved separately.
The file was modifiedlldb/test/Shell/SymbolFile/PDB/variables.test
The file was modifiedllvm/test/DebugInfo/COFF/global-constants.ll
The file was modifiedllvm/test/DebugInfo/COFF/globals.ll
The file was modifiedllvm/test/DebugInfo/COFF/types-array-unsized.ll
The file was modifiedllvm/lib/CodeGen/AsmPrinter/CodeViewDebug.h
The file was modifiedllvm/test/DebugInfo/COFF/global_visibility.ll
The file was modifiedllvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp
The file was addedllvm/test/DebugInfo/COFF/udts-fixpoint.ll
Commit ddff9799d2d0052653aa0385969b418a87bf5d7c by yhs
[BPF] Prevent disassembly segfault for NOP insn

For a simple program like below:
  -bash-4.4$ cat t.c
  int test() {
    asm volatile("r0 = r0" ::);
    return 0;
  }
compiled with
  clang -target bpf -O2 -c t.c
the following llvm-objdump command will segfault.
  llvm-objdump -d t.o

  0:       bf 00 00 00 00 00 00 00 nop
  llvm-objdump: ../include/llvm/ADT/SmallVector.h:180
  ...
  Assertion `idx < size()' failed
  ...
  abort
  ...
  llvm::BPFInstPrinter::printOperand
  llvm::BPFInstPrinter::printInstruction
  ...

The reason is both NOP and MOV_rr (r0 = r0) having the same encoding.
The disassembly getInstruction() decodes to be a NOP instruciton but
during printInstruction() the same encoding is interpreted as
a MOV_rr instruction. Such a mismatcch caused the segfault.

The fix is to make NOP instruction as CodeGen only so disassembler
will skip NOP insn for disassembling.

Note that instruction "r0 = r0" should not appear in non inline
asm codes since BPF Machine Instruction Peephole optimization will
remove it.

Differential Revision: https://reviews.llvm.org/D80156
The file was modifiedllvm/lib/Target/BPF/BPFInstrInfo.td
The file was addedllvm/test/CodeGen/BPF/objdump_nop.ll
Commit 4a69eda6f3184d52fcd9f7ad74d318dac01305de by czhengsz
[PowerPC][MachineCombiner] add testcase for reassociating FMA - NFC
The file was modifiedllvm/test/CodeGen/PowerPC/machine-combiner.ll
Commit ddcb3cf213e826a1597917002864eaf514ca4726 by czhengsz
[TargetInstrInfo] add override function setSpecialOperandAttr - NFC
The file was modifiedllvm/include/llvm/CodeGen/TargetInstrInfo.h
The file was modifiedllvm/lib/Target/PowerPC/PPCInstrInfo.cpp
Commit 9971839942f5e2236ccbebfdb72b509426c06649 by czhengsz
fix build failure due to commit rGddcb3cf213e8
The file was modifiedllvm/lib/Target/PowerPC/PPCInstrInfo.h