FailedChanges

Summary

  1. Pass DebugLoc::appendInlinedAt DebugLoc arg by const reference not value. (details)
  2. Make dyn_cast results explicitly auto* instead of just auto. (details)
  3. [DWARFYAML][debug_abbrev] Emit 0 byte for terminating abbreviations. (details)
  4. [Outliner] Set nounwind for outlined functions (details)
  5. [InstCombine] Don't let an alignment assume prevent new/delete removals. (details)
  6. [Alignment][NFC] Use Align for BPFAbstractMemberAccess::RecordAlignment (details)
  7. [ms] [llvm-ml] Use default RIP-relative addressing for x64 MASM. (details)
  8. [CVP] Use different number in test (NFC) (details)
  9. [NFC] Clean up uses of MachineModuleInfoWrapperPass (details)
  10. Change the INLINEASM_BR MachineInstr to be a non-terminating instruction. (details)
  11. [BPF] Fix a BTF gen bug related to a pointer struct member (details)
Commit 0ae989a1fede0e512e2bfd57b328aad6c1920329 by llvm-dev
Pass DebugLoc::appendInlinedAt DebugLoc arg by const reference not value.

Noticed by clang-tidy performance-unnecessary-value-param warning.
The file was modifiedllvm/include/llvm/IR/DebugLoc.h
The file was modifiedllvm/lib/IR/DebugLoc.cpp
Commit c83ec0a633583e5b12e0aeb70627eb35f7cd4847 by llvm-dev
Make dyn_cast results explicitly auto* instead of just auto.

Noticed by clang-tidy llvm-qualified-auto warning.
The file was modifiedllvm/lib/IR/Instructions.cpp
Commit 38907b696c0e31d2269ec4b8966bf603c36b579c by Xing
[DWARFYAML][debug_abbrev] Emit 0 byte for terminating abbreviations.

The abbreviations for a given compilation unit end with an entry
consisting of a 0 byte for the abbreviation code.

Reviewed By: jhenderson

Differential Revision: https://reviews.llvm.org/D82933
The file was modifiedllvm/test/tools/yaml2obj/ELF/DWARF/debug-abbrev.yaml
The file was modifiedllvm/test/ObjectYAML/MachO/DWARF2-AddrSize8-FormValues.yaml
The file was modifiedllvm/lib/ObjectYAML/DWARFEmitter.cpp
The file was modifiedllvm/test/tools/yaml2obj/ELF/DWARF/debug-info.yaml
Commit ca4c1ad854ab9baf510e489d81625cace991beb1 by david.green
[Outliner] Set nounwind for outlined functions

This prevents the outlined functions from pulling in a lot of unnecessary code
in our downstream libraries/linker. Which stops outlining making codesize
worse in c++ code with no-exceptions.

Differential Revision: https://reviews.llvm.org/D57254
The file was modifiedllvm/test/CodeGen/AArch64/machine-outliner-retaddr-sign-same-scope-same-key-b.ll
The file was modifiedllvm/test/CodeGen/AArch64/machine-outliner-retaddr-sign-v8-3.ll
The file was addedllvm/test/CodeGen/AArch64/machine-outliner-throw2.ll
The file was modifiedllvm/lib/CodeGen/MachineOutliner.cpp
The file was modifiedllvm/test/CodeGen/AArch64/machine-outliner.ll
The file was addedllvm/test/CodeGen/AArch64/machine-outliner-throw.ll
The file was modifiedllvm/test/CodeGen/AArch64/machine-outliner-retaddr-sign-cfi.ll
Commit 6bd1db08e7ccd61996d3867d22ff8eb1979f8621 by yamauchi
[InstCombine] Don't let an alignment assume prevent new/delete removals.

Remove allocations with alignment assume.

Differential Revision: https://reviews.llvm.org/D81854
The file was modifiedllvm/lib/Transforms/InstCombine/InstructionCombining.cpp
The file was modifiedllvm/test/Transforms/InstCombine/malloc-free-delete.ll
The file was modifiedllvm/test/Transforms/PhaseOrdering/inlining-alignment-assumptions.ll
Commit 0f9d623b63e87b4ba30c30fd884ecc333eb32b4a by gchatelet
[Alignment][NFC] Use Align for BPFAbstractMemberAccess::RecordAlignment

This patch is part of a series to introduce an Alignment type.
See this thread for context: http://lists.llvm.org/pipermail/llvm-dev/2019-July/133851.html
See this patch for the introduction of the type: https://reviews.llvm.org/D64790

Differential Revision: https://reviews.llvm.org/D82962
The file was modifiedllvm/lib/Target/BPF/BPFAbstractMemberAccess.cpp
Commit 353a169cb814334e47bc2e98f03931e62023665a by epastor
[ms] [llvm-ml] Use default RIP-relative addressing for x64 MASM.

Summary:
When parsing 64-bit MASM, treat memory operands with unspecified base register as RIP-based.

Documented in several places, including https://software.intel.com/en-us/articles/introduction-to-x64-assembly: "Unfortunately, MASM does not allow this form of opcode, but other assemblers like FASM and YASM do. Instead, MASM embeds RIP-relative addressing implicitly."

Reviewed By: thakis

Differential Revision: https://reviews.llvm.org/D73227
The file was modifiedllvm/lib/Target/X86/AsmParser/X86Operand.h
The file was modifiedllvm/lib/MC/MCParser/MasmParser.cpp
The file was modifiedllvm/include/llvm/MC/MCParser/MCAsmParser.h
The file was addedllvm/test/tools/llvm-ml/rip-relative-addressing.test
The file was modifiedllvm/lib/Target/X86/AsmParser/X86AsmParser.cpp
Commit 0f6afd946d25a2e83288339934f8fa384e38eea3 by nikita.ppv
[CVP] Use different number in test (NFC)

To make it clear that this is not intended to be specific to
mask / bit tests.
The file was modifiedllvm/test/Transforms/CorrelatedValuePropagation/icmp.ll
Commit 78c69a00a4cff786e0ef13c895d0db309d6b3f42 by Yuanfang Chen
[NFC] Clean up uses of MachineModuleInfoWrapperPass
The file was modifiedllvm/lib/CodeGen/BBSectionsPrepare.cpp
The file was modifiedllvm/lib/Target/X86/X86InsertPrefetch.cpp
The file was modifiedllvm/lib/Target/AArch64/AArch64SLSHardening.cpp
The file was modifiedllvm/lib/CodeGen/GCRootLowering.cpp
The file was modifiedllvm/lib/CodeGen/BranchFolding.h
The file was modifiedllvm/lib/CodeGen/BranchFolding.cpp
The file was modifiedllvm/lib/CodeGen/MachineBlockPlacement.cpp
The file was modifiedllvm/lib/Target/X86/X86IndirectThunks.cpp
The file was modifiedllvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
The file was modifiedllvm/lib/CodeGen/IfConversion.cpp
The file was modifiedllvm/lib/CodeGen/UnreachableBlockElim.cpp
Commit 4b0aa5724feaa89a9538dcab97e018110b0e4bc3 by jyknight
Change the INLINEASM_BR MachineInstr to be a non-terminating instruction.

Before this instruction supported output values, it fit fairly
naturally as a terminator. However, being a terminator while also
supporting outputs causes some trouble, as the physreg->vreg COPY
operations cannot be in the same block.

Modeling it as a non-terminator allows it to be handled the same way
as invoke is handled already.

Most of the changes here were created by auditing all the existing
users of MachineBasicBlock::isEHPad() and
MachineBasicBlock::hasEHPadSuccessor(), and adding calls to
isInlineAsmBrIndirectTarget or mayHaveInlineAsmBr, as appropriate.

Reviewed By: nickdesaulniers, void

Differential Revision: https://reviews.llvm.org/D79794
The file was modifiedllvm/test/CodeGen/ARM/ifcvt-diamond-unanalyzable-common.mir
The file was modifiedllvm/test/CodeGen/X86/callbr-asm.ll
The file was modifiedllvm/test/Verifier/callbr.ll
The file was modifiedllvm/test/CodeGen/X86/callbr-asm-branch-folding.ll
The file was modifiedllvm/lib/CodeGen/SplitKit.cpp
The file was modifiedllvm/lib/Target/Hexagon/BitTracker.cpp
The file was modifiedllvm/test/CodeGen/X86/callbr-asm-label-addr.ll
The file was modifiedllvm/include/llvm/CodeGen/MachineBasicBlock.h
The file was modifiedllvm/lib/CodeGen/MachineVerifier.cpp
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
The file was modifiedllvm/lib/Target/PowerPC/PPCBranchCoalescing.cpp
The file was modifiedllvm/lib/CodeGen/BranchFolding.cpp
The file was modifiedllvm/lib/CodeGen/TargetInstrInfo.cpp
The file was modifiedllvm/lib/Target/Hexagon/HexagonInstrInfo.cpp
The file was modifiedllvm/include/llvm/CodeGen/ISDOpcodes.h
The file was modifiedllvm/lib/CodeGen/PHIEliminationUtils.cpp
The file was addedllvm/test/CodeGen/X86/callbr-asm-instr-scheduling.ll
The file was modifiedllvm/lib/CodeGen/MachineSink.cpp
The file was modifiedllvm/lib/Target/Hexagon/HexagonConstPropagation.cpp
The file was modifiedllvm/lib/CodeGen/SplitKit.h
The file was modifiedllvm/lib/CodeGen/TailDuplicator.cpp
The file was modifiedllvm/test/CodeGen/X86/callbr-asm-blockplacement.ll
The file was modifiedllvm/lib/CodeGen/ShrinkWrap.cpp
The file was modifiedllvm/test/CodeGen/ARM/ifcvt-size.mir
The file was modifiedllvm/lib/CodeGen/RegisterCoalescer.cpp
The file was modifiedllvm/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp
The file was modifiedllvm/lib/Target/AMDGPU/SIInstrInfo.cpp
The file was modifiedllvm/lib/CodeGen/MachineBasicBlock.cpp
The file was modifiedllvm/test/CodeGen/X86/callbr-asm-outputs.ll
The file was modifiedllvm/include/llvm/Target/Target.td
The file was modifiedllvm/test/CodeGen/AArch64/callbr-asm-label.ll
The file was modifiedllvm/test/CodeGen/AArch64/callbr-asm-obj-file.ll
The file was addedllvm/test/CodeGen/X86/shrinkwrap-callbr.ll
The file was modifiedllvm/lib/Target/ARM/ARMBaseInstrInfo.cpp
The file was modifiedllvm/test/CodeGen/X86/callbr-asm-outputs-pred-succ.ll
Commit 3eacfdc72f1aa3ac53eb300116f194d560053ec7 by yhs
[BPF] Fix a BTF gen bug related to a pointer struct member

Currently, BTF generation stops at pointer struct members
if the pointee type is a struct. This is to avoid bloating
generated BTF size. The following is the process to
correctly record types for these pointee struct types.
  - During type traversal stage, when a struct member, which
    is a pointer to another struct, is encountered,
    the pointee struct type, keyed with its name, is
    remembered in a Fixup map.
  - Later, when all type traversal is done, the Fixup map
    is scanned, based on struct name matching, to either
    resolve as pointing to a real already generated type
    or as a forward declaration.

Andrii discovered a bug if the struct member pointee struct
is anonymous. In this case, a struct with empty name is
recorded in Fixup map, and later it happens another anonymous
struct with empty name is defined in BTF. So wrong type
resolution happens.

To fix the problem, if the struct member pointee struct
is anonymous, pointee struct type will be generated in
stead of being put in Fixup map.

Differential Revision: https://reviews.llvm.org/D82976
The file was addedllvm/test/CodeGen/BPF/BTF/struct-anon-2.ll
The file was modifiedllvm/lib/Target/BPF/BTFDebug.cpp