SuccessChanges

Summary

  1. [ExecutionEngine] Fix rL362941: Add UnaryOperator visitor to the interpreter Missed break statements. This was D62881.
  2. [AMDGPU] Optimize image_[load|store]_mip Summary: Replace image_load_mip/image_store_mip with image_load/image_store if lod is 0. Reviewers: arsenm, nhaehnle Reviewed By: arsenm Subscribers: arsenm, kzhuravl, jvesely, wdng, nhaehnle, yaxunl, dstuttard, tpr, t-tye, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D63073
  3. Revert rL362953 and its followup rL362955. These caused a build failure because I managed not to notice they depended on a later unpushed commit in my current stack. Sorry about that.
  4. [ARM] Add the non-MVE instructions in Arm v8.1-M. This should have been part of r362953, but I had a finger-trouble incident and committed the old rather than new version of the patch. Sorry.
  5. [InstCombine] allow unordered preds when canonicalizing to fabs() We have a known-never-nan value via 'nnan', so an unordered predicate is the same as its ordered sibling. Similar to: rL362937
  6. [ARM] Add the non-MVE instructions in Arm v8.1-M. This adds support for the new family of conditional selection / increment / negation instructions; the low-overhead branch instructions (e.g. BF, WLS, DLS); the CLRM instruction to zero a whole list of registers at once; the new VMRS/VMSR and VLDR/VSTR instructions to get data in and out of 8.1-M system registers, particularly including the new VPR register used by MVE vector predication. To support this, we also add a register name 'zr' (used by the CSEL family to force one of the inputs to the constant 0), and operand types for lists of registers that are also allowed to include APSR or VPR (used by CLRM). The VLDR/VSTR instructions also need some new addressing modes. The low-overhead branch instructions exist in their own separate architecture extension, which we treat as enabled by default, but you can say -mattr=-lob or equivalent to turn it off. Reviewers: dmgreen, samparker, SjoerdMeijer, t.p.northover Reviewed By: samparker Subscribers: miyuki, javed.absar, kristof.beyls, hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D62667
  7. [DA] Add an option to control delinearization validity checks Summary: Dependence Analysis performs static checks to confirm validity of delinearization. These checks often fail for 64-bit targets due to type conversions and integer wrapping that prevent simplification of the SCEV expressions. These checks would also fail at compile-time if the lower bound of the loops are compile-time unknown. Author: bmahjour Reviewer: Meinersbur, jdoerfert, kbarton, dmgreen, fhahn Reviewed By: Meinersbur, jdoerfert, dmgreen Subscribers: fhahn, hiraditya, javed.absar, llvm-commits, Whitney, etiotto Tag: LLVM Differential Revision: https://reviews.llvm.org/D62610
  8. [DebugInfo] Terminate all location-lists at end of block This commit reapplies r359426 (which was reverted in r360301 due to performance problems) and rolls in D61940 to address the performance problem. I've combined the two to avoid creating a span of slow-performance, and to ease reverting if more problems crop up. The summary of D61940: This patch removes the "ChangingRegs" facility in DbgEntityHistoryCalculator, as its overapproximate nature can produce incorrect variable locations. An unchanging register doesn't mean a variable doesn't change its location. The patch kills off everything that calculates the ChangingRegs vector. Previously ChangingRegs spotted epilogues and marked registers as unchanging if they weren't modified outside the epilogue, increasing the chance that we can emit a single-location variable record. Without this feature, debug-loc-offset.mir and pr19307.mir become temporarily XFAIL. They'll be re-enabled by D62314, using the FrameDestroy flag to identify epilogues, I've split this into two steps as FrameDestroy isn't necessarily supported by all backends. The logic for terminating variable locations at the end of a basic block now becomes much more enjoyably simple: we just terminate them all. Other test changes: inlined-argument.ll becomes XFAIL, but for a longer term. The current algorithm for detecting that a variable has a single-location doesn't work in this scenario (inlined function in multiple blocks), only other bugs were making this test work. fission-ranges.ll gets slightly refreshed too, as the location of "p" is now correctly determined to be a single location. Differential Revision: https://reviews.llvm.org/D61940
  9. [InstCombine] add tests for fabs() with unordered preds; NFC
  10. [IRBuilder] Add CreateFNegFMF(...) to the IRBuilder Differential Revision: https://reviews.llvm.org/D62521
  11. [InstCombine] fix bug in canonicalization to fabs() Forgot to translate the predicate clauses in rL362943.
  12. [InstCombine] change canonicalization to fabs() to use FMF on fsub Similar to rL362909: This isn't the ideal fix (use FMF on the select), but it's still an improvement until we have better FMF propagation to selects and other FP math operators. I don't think there's much risk of regression from this change by not including the FMF on the fcmp any more. The nsz/nnan FMF should be the same on the fcmp and the fsub because they have the same operand.
  13. [ARM] Disallow PC, and optionally SP, in VMOVRH and VMOVHR. Arm v8.1-M supports the VMOV instructions that move a half-precision value to and from a GPR, but not if the GPR is SP or PC. To fix this, I've changed those instructions to use the rGPR register class instead of GPR. rGPR always excludes PC, and it excludes SP except in the presence of the HasV8Ops target feature (i.e. Arm v8-A). So the effect is that VMOV.F16 to and from PC is now illegal everywhere, but VMOV.F16 to and from SP is illegal only on non-v8-A cores (which I believe is all as it should be). Reviewers: dmgreen, samparker, SjoerdMeijer, ostannard Reviewed By: ostannard Subscribers: ostannard, javed.absar, kristof.beyls, hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D60704
  14. [ExecutionEngine] Add UnaryOperator visitor to the interpreter This is to support the unary FNeg instruction. Differential Revision: https://reviews.llvm.org/D62881
  15. [yaml2obj] - Remove TODOs from dynsymtab-implicit-sections-size-content.yaml. NFCI. Now when https://bugs.llvm.org/show_bug.cgi?id=42215 is fixed, we can remove these TODOs.
Revision 362958 by mcinally:
[ExecutionEngine] Fix rL362941: Add UnaryOperator visitor to the interpreter

Missed break statements. This was D62881.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/ExecutionEngine/Interpreter/Execution.cpptrunk/lib/ExecutionEngine/Interpreter/Execution.cpp
Revision 362957 by Piotr Sobczak:
[AMDGPU] Optimize image_[load|store]_mip

Summary:
Replace image_load_mip/image_store_mip
with image_load/image_store if lod is 0.

Reviewers: arsenm, nhaehnle

Reviewed By: arsenm

Subscribers: arsenm, kzhuravl, jvesely, wdng, nhaehnle, yaxunl, dstuttard, tpr, t-tye, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D63073
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/AMDGPU/MIMGInstructions.tdtrunk/lib/Target/AMDGPU/MIMGInstructions.td
The file was modified/llvm/trunk/lib/Target/AMDGPU/SIISelLowering.cpptrunk/lib/Target/AMDGPU/SIISelLowering.cpp
The file was modified/llvm/trunk/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpptrunk/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp
The file was modified/llvm/trunk/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.htrunk/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h
The file was added/llvm/trunk/test/CodeGen/AMDGPU/image_ls_mipmap_zero.lltrunk/test/CodeGen/AMDGPU/image_ls_mipmap_zero.ll
Revision 362956 by statham:
Revert rL362953 and its followup rL362955.

These caused a build failure because I managed not to notice they
depended on a later unpushed commit in my current stack. Sorry about
that.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/BinaryFormat/ELFRelocs/ARM.deftrunk/include/llvm/BinaryFormat/ELFRelocs/ARM.def
The file was modified/llvm/trunk/include/llvm/Support/ARMTargetParser.deftrunk/include/llvm/Support/ARMTargetParser.def
The file was modified/llvm/trunk/include/llvm/Support/ARMTargetParser.htrunk/include/llvm/Support/ARMTargetParser.h
The file was modified/llvm/trunk/lib/Target/ARM/ARM.tdtrunk/lib/Target/ARM/ARM.td
The file was modified/llvm/trunk/lib/Target/ARM/ARMAsmPrinter.cpptrunk/lib/Target/ARM/ARMAsmPrinter.cpp
The file was modified/llvm/trunk/lib/Target/ARM/ARMBaseRegisterInfo.cpptrunk/lib/Target/ARM/ARMBaseRegisterInfo.cpp
The file was modified/llvm/trunk/lib/Target/ARM/ARMInstrInfo.tdtrunk/lib/Target/ARM/ARMInstrInfo.td
The file was modified/llvm/trunk/lib/Target/ARM/ARMInstrThumb2.tdtrunk/lib/Target/ARM/ARMInstrThumb2.td
The file was modified/llvm/trunk/lib/Target/ARM/ARMInstrVFP.tdtrunk/lib/Target/ARM/ARMInstrVFP.td
The file was modified/llvm/trunk/lib/Target/ARM/ARMPredicates.tdtrunk/lib/Target/ARM/ARMPredicates.td
The file was modified/llvm/trunk/lib/Target/ARM/ARMRegisterInfo.tdtrunk/lib/Target/ARM/ARMRegisterInfo.td
The file was modified/llvm/trunk/lib/Target/ARM/ARMScheduleA57.tdtrunk/lib/Target/ARM/ARMScheduleA57.td
The file was modified/llvm/trunk/lib/Target/ARM/ARMSubtarget.htrunk/lib/Target/ARM/ARMSubtarget.h
The file was modified/llvm/trunk/lib/Target/ARM/AsmParser/ARMAsmParser.cpptrunk/lib/Target/ARM/AsmParser/ARMAsmParser.cpp
The file was modified/llvm/trunk/lib/Target/ARM/Disassembler/ARMDisassembler.cpptrunk/lib/Target/ARM/Disassembler/ARMDisassembler.cpp
The file was modified/llvm/trunk/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.cpptrunk/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.cpp
The file was modified/llvm/trunk/lib/Target/ARM/MCTargetDesc/ARMELFObjectWriter.cpptrunk/lib/Target/ARM/MCTargetDesc/ARMELFObjectWriter.cpp
The file was modified/llvm/trunk/lib/Target/ARM/MCTargetDesc/ARMFixupKinds.htrunk/lib/Target/ARM/MCTargetDesc/ARMFixupKinds.h
The file was modified/llvm/trunk/lib/Target/ARM/MCTargetDesc/ARMInstPrinter.cpptrunk/lib/Target/ARM/MCTargetDesc/ARMInstPrinter.cpp
The file was modified/llvm/trunk/lib/Target/ARM/MCTargetDesc/ARMInstPrinter.htrunk/lib/Target/ARM/MCTargetDesc/ARMInstPrinter.h
The file was modified/llvm/trunk/lib/Target/ARM/MCTargetDesc/ARMMCCodeEmitter.cpptrunk/lib/Target/ARM/MCTargetDesc/ARMMCCodeEmitter.cpp
The file was modified/llvm/trunk/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpptrunk/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp
The file was modified/llvm/trunk/lib/Target/ARM/Thumb2InstrInfo.cpptrunk/lib/Target/ARM/Thumb2InstrInfo.cpp
The file was modified/llvm/trunk/test/CodeGen/ARM/ipra-reg-usage.lltrunk/test/CodeGen/ARM/ipra-reg-usage.ll
The file was removed/llvm/trunk/test/MC/ARM/clrm-asm.strunk/test/MC/ARM/clrm-asm.s
The file was removed/llvm/trunk/test/MC/ARM/thumbv8.1m-vmrs-vmsr.strunk/test/MC/ARM/thumbv8.1m-vmrs-vmsr.s
The file was removed/llvm/trunk/test/MC/ARM/thumbv8.1m.strunk/test/MC/ARM/thumbv8.1m.s
The file was removed/llvm/trunk/test/MC/ARM/vscclrm-asm.strunk/test/MC/ARM/vscclrm-asm.s
The file was removed/llvm/trunk/test/MC/ARM/vstrldr_sys.strunk/test/MC/ARM/vstrldr_sys.s
The file was removed/llvm/trunk/test/MC/Disassembler/ARM/clrm.txttrunk/test/MC/Disassembler/ARM/clrm.txt
The file was removed/llvm/trunk/test/MC/Disassembler/ARM/thumb2-v8.1m.txttrunk/test/MC/Disassembler/ARM/thumb2-v8.1m.txt
The file was removed/llvm/trunk/test/MC/Disassembler/ARM/thumbv8.1m-vmrs-vmsr.txttrunk/test/MC/Disassembler/ARM/thumbv8.1m-vmrs-vmsr.txt
The file was removed/llvm/trunk/test/MC/Disassembler/ARM/thumbv8.1m.strunk/test/MC/Disassembler/ARM/thumbv8.1m.s
The file was removed/llvm/trunk/test/MC/Disassembler/ARM/vscclrm.txttrunk/test/MC/Disassembler/ARM/vscclrm.txt
The file was removed/llvm/trunk/test/MC/Disassembler/ARM/vstrldr_sys.txttrunk/test/MC/Disassembler/ARM/vstrldr_sys.txt
Revision 362955 by statham:
[ARM] Add the non-MVE instructions in Arm v8.1-M.

This should have been part of r362953, but I had a finger-trouble
incident and committed the old rather than new version of the patch.
Sorry.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/ARM/ARMInstrThumb2.tdtrunk/lib/Target/ARM/ARMInstrThumb2.td
The file was modified/llvm/trunk/test/MC/ARM/thumbv8.1m.strunk/test/MC/ARM/thumbv8.1m.s
Revision 362954 by spatel:
[InstCombine] allow unordered preds when canonicalizing to fabs()

We have a known-never-nan value via 'nnan', so an unordered predicate
is the same as its ordered sibling.

Similar to:
rL362937
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Transforms/InstCombine/InstCombineSelect.cpptrunk/lib/Transforms/InstCombine/InstCombineSelect.cpp
The file was modified/llvm/trunk/test/Transforms/InstCombine/fabs.lltrunk/test/Transforms/InstCombine/fabs.ll
Revision 362953 by statham:
[ARM] Add the non-MVE instructions in Arm v8.1-M.

This adds support for the new family of conditional selection /
increment / negation instructions; the low-overhead branch
instructions (e.g. BF, WLS, DLS); the CLRM instruction to zero a whole
list of registers at once; the new VMRS/VMSR and VLDR/VSTR
instructions to get data in and out of 8.1-M system registers,
particularly including the new VPR register used by MVE vector
predication.

To support this, we also add a register name 'zr' (used by the CSEL
family to force one of the inputs to the constant 0), and operand
types for lists of registers that are also allowed to include APSR or
VPR (used by CLRM). The VLDR/VSTR instructions also need some new
addressing modes.

The low-overhead branch instructions exist in their own separate
architecture extension, which we treat as enabled by default, but you
can say -mattr=-lob or equivalent to turn it off.

Reviewers: dmgreen, samparker, SjoerdMeijer, t.p.northover

Reviewed By: samparker

Subscribers: miyuki, javed.absar, kristof.beyls, hiraditya, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D62667
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/BinaryFormat/ELFRelocs/ARM.deftrunk/include/llvm/BinaryFormat/ELFRelocs/ARM.def
The file was modified/llvm/trunk/include/llvm/Support/ARMTargetParser.deftrunk/include/llvm/Support/ARMTargetParser.def
The file was modified/llvm/trunk/include/llvm/Support/ARMTargetParser.htrunk/include/llvm/Support/ARMTargetParser.h
The file was modified/llvm/trunk/lib/Target/ARM/ARM.tdtrunk/lib/Target/ARM/ARM.td
The file was modified/llvm/trunk/lib/Target/ARM/ARMAsmPrinter.cpptrunk/lib/Target/ARM/ARMAsmPrinter.cpp
The file was modified/llvm/trunk/lib/Target/ARM/ARMBaseRegisterInfo.cpptrunk/lib/Target/ARM/ARMBaseRegisterInfo.cpp
The file was modified/llvm/trunk/lib/Target/ARM/ARMInstrInfo.tdtrunk/lib/Target/ARM/ARMInstrInfo.td
The file was modified/llvm/trunk/lib/Target/ARM/ARMInstrThumb2.tdtrunk/lib/Target/ARM/ARMInstrThumb2.td
The file was modified/llvm/trunk/lib/Target/ARM/ARMInstrVFP.tdtrunk/lib/Target/ARM/ARMInstrVFP.td
The file was modified/llvm/trunk/lib/Target/ARM/ARMPredicates.tdtrunk/lib/Target/ARM/ARMPredicates.td
The file was modified/llvm/trunk/lib/Target/ARM/ARMRegisterInfo.tdtrunk/lib/Target/ARM/ARMRegisterInfo.td
The file was modified/llvm/trunk/lib/Target/ARM/ARMScheduleA57.tdtrunk/lib/Target/ARM/ARMScheduleA57.td
The file was modified/llvm/trunk/lib/Target/ARM/ARMSubtarget.htrunk/lib/Target/ARM/ARMSubtarget.h
The file was modified/llvm/trunk/lib/Target/ARM/AsmParser/ARMAsmParser.cpptrunk/lib/Target/ARM/AsmParser/ARMAsmParser.cpp
The file was modified/llvm/trunk/lib/Target/ARM/Disassembler/ARMDisassembler.cpptrunk/lib/Target/ARM/Disassembler/ARMDisassembler.cpp
The file was modified/llvm/trunk/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.cpptrunk/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.cpp
The file was modified/llvm/trunk/lib/Target/ARM/MCTargetDesc/ARMELFObjectWriter.cpptrunk/lib/Target/ARM/MCTargetDesc/ARMELFObjectWriter.cpp
The file was modified/llvm/trunk/lib/Target/ARM/MCTargetDesc/ARMFixupKinds.htrunk/lib/Target/ARM/MCTargetDesc/ARMFixupKinds.h
The file was modified/llvm/trunk/lib/Target/ARM/MCTargetDesc/ARMInstPrinter.cpptrunk/lib/Target/ARM/MCTargetDesc/ARMInstPrinter.cpp
The file was modified/llvm/trunk/lib/Target/ARM/MCTargetDesc/ARMInstPrinter.htrunk/lib/Target/ARM/MCTargetDesc/ARMInstPrinter.h
The file was modified/llvm/trunk/lib/Target/ARM/MCTargetDesc/ARMMCCodeEmitter.cpptrunk/lib/Target/ARM/MCTargetDesc/ARMMCCodeEmitter.cpp
The file was modified/llvm/trunk/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpptrunk/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp
The file was modified/llvm/trunk/lib/Target/ARM/Thumb2InstrInfo.cpptrunk/lib/Target/ARM/Thumb2InstrInfo.cpp
The file was modified/llvm/trunk/test/CodeGen/ARM/ipra-reg-usage.lltrunk/test/CodeGen/ARM/ipra-reg-usage.ll
The file was added/llvm/trunk/test/MC/ARM/clrm-asm.strunk/test/MC/ARM/clrm-asm.s
The file was added/llvm/trunk/test/MC/ARM/thumbv8.1m-vmrs-vmsr.strunk/test/MC/ARM/thumbv8.1m-vmrs-vmsr.s
The file was added/llvm/trunk/test/MC/ARM/thumbv8.1m.strunk/test/MC/ARM/thumbv8.1m.s
The file was added/llvm/trunk/test/MC/ARM/vscclrm-asm.strunk/test/MC/ARM/vscclrm-asm.s
The file was added/llvm/trunk/test/MC/ARM/vstrldr_sys.strunk/test/MC/ARM/vstrldr_sys.s
The file was added/llvm/trunk/test/MC/Disassembler/ARM/clrm.txttrunk/test/MC/Disassembler/ARM/clrm.txt
The file was added/llvm/trunk/test/MC/Disassembler/ARM/thumb2-v8.1m.txttrunk/test/MC/Disassembler/ARM/thumb2-v8.1m.txt
The file was added/llvm/trunk/test/MC/Disassembler/ARM/thumbv8.1m-vmrs-vmsr.txttrunk/test/MC/Disassembler/ARM/thumbv8.1m-vmrs-vmsr.txt
The file was added/llvm/trunk/test/MC/Disassembler/ARM/thumbv8.1m.strunk/test/MC/Disassembler/ARM/thumbv8.1m.s
The file was added/llvm/trunk/test/MC/Disassembler/ARM/vscclrm.txttrunk/test/MC/Disassembler/ARM/vscclrm.txt
The file was added/llvm/trunk/test/MC/Disassembler/ARM/vstrldr_sys.txttrunk/test/MC/Disassembler/ARM/vstrldr_sys.txt
Revision 362952 by whitneyt:
[DA] Add an option to control delinearization validity checks

Summary: Dependence Analysis performs static checks to confirm validity
of delinearization. These checks often fail for 64-bit targets due to
type conversions and integer wrapping that prevent simplification of the
SCEV expressions. These checks would also fail at compile-time if the
lower bound of the loops are compile-time unknown.
Author: bmahjour
Reviewer: Meinersbur, jdoerfert, kbarton, dmgreen, fhahn
Reviewed By: Meinersbur, jdoerfert, dmgreen
Subscribers: fhahn, hiraditya, javed.absar, llvm-commits, Whitney,
etiotto
Tag: LLVM
Differential Revision: https://reviews.llvm.org/D62610
Change TypePath in RepositoryPath in Workspace
The file was added/llvm/trunk/test/Analysis/DependenceAnalysis/SimpleSIVNoValidityCheck.lltrunk/test/Analysis/DependenceAnalysis/SimpleSIVNoValidityCheck.ll
Revision 362951 by jmorse:
[DebugInfo] Terminate all location-lists at end of block

This commit reapplies r359426 (which was reverted in r360301 due to
performance problems) and rolls in D61940 to address the performance problem.
I've combined the two to avoid creating a span of slow-performance, and to
ease reverting if more problems crop up.

The summary of D61940: This patch removes the "ChangingRegs" facility in
DbgEntityHistoryCalculator, as its overapproximate nature can produce incorrect
variable locations. An unchanging register doesn't mean a variable doesn't
change its location.

The patch kills off everything that calculates the ChangingRegs vector.
Previously ChangingRegs spotted epilogues and marked registers as unchanging if
they weren't modified outside the epilogue, increasing the chance that we can
emit a single-location variable record. Without this feature,
debug-loc-offset.mir and pr19307.mir become temporarily XFAIL. They'll be
re-enabled by D62314, using the FrameDestroy flag to identify epilogues, I've
split this into two steps as FrameDestroy isn't necessarily supported by all
backends.

The logic for terminating variable locations at the end of a basic block now
becomes much more enjoyably simple: we just terminate them all.

Other test changes: inlined-argument.ll becomes XFAIL, but for a longer term.
The current algorithm for detecting that a variable has a single-location
doesn't work in this scenario (inlined function in multiple blocks), only other
bugs were making this test work. fission-ranges.ll gets slightly refreshed too,
as the location of "p" is now correctly determined to be a single location.

Differential Revision: https://reviews.llvm.org/D61940
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/CodeGen/AsmPrinter/DbgEntityHistoryCalculator.cpptrunk/lib/CodeGen/AsmPrinter/DbgEntityHistoryCalculator.cpp
The file was modified/llvm/trunk/lib/CodeGen/LiveDebugValues.cpptrunk/lib/CodeGen/LiveDebugValues.cpp
The file was modified/llvm/trunk/test/DebugInfo/AArch64/inlined-argument.lltrunk/test/DebugInfo/AArch64/inlined-argument.ll
The file was modified/llvm/trunk/test/DebugInfo/AArch64/struct_by_value.lltrunk/test/DebugInfo/AArch64/struct_by_value.ll
The file was modified/llvm/trunk/test/DebugInfo/COFF/fpo-shrink-wrap.lltrunk/test/DebugInfo/COFF/fpo-shrink-wrap.ll
The file was modified/llvm/trunk/test/DebugInfo/COFF/pieces.lltrunk/test/DebugInfo/COFF/pieces.ll
The file was modified/llvm/trunk/test/DebugInfo/MIR/AArch64/implicit-def-dead-scope.mirtrunk/test/DebugInfo/MIR/AArch64/implicit-def-dead-scope.mir
The file was modified/llvm/trunk/test/DebugInfo/X86/debug-loc-offset.mirtrunk/test/DebugInfo/X86/debug-loc-offset.mir
The file was modified/llvm/trunk/test/DebugInfo/X86/fission-ranges.lltrunk/test/DebugInfo/X86/fission-ranges.ll
The file was modified/llvm/trunk/test/DebugInfo/X86/pr19307.mirtrunk/test/DebugInfo/X86/pr19307.mir
The file was modified/llvm/trunk/test/DebugInfo/X86/reference-argument.lltrunk/test/DebugInfo/X86/reference-argument.ll
The file was modified/llvm/trunk/test/DebugInfo/X86/stack-value-piece.lltrunk/test/DebugInfo/X86/stack-value-piece.ll
Revision 362949 by spatel:
[InstCombine] add tests for fabs() with unordered preds; NFC
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/Transforms/InstCombine/fabs.lltrunk/test/Transforms/InstCombine/fabs.ll
Revision 362947 by mcinally:
[IRBuilder] Add CreateFNegFMF(...) to the IRBuilder

Differential Revision: https://reviews.llvm.org/D62521
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/IR/IRBuilder.htrunk/include/llvm/IR/IRBuilder.h
The file was modified/llvm/trunk/unittests/IR/IRBuilderTest.cpptrunk/unittests/IR/IRBuilderTest.cpp
Revision 362945 by spatel:
[InstCombine] fix bug in canonicalization to fabs()

Forgot to translate the predicate clauses in rL362943.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Transforms/InstCombine/InstCombineSelect.cpptrunk/lib/Transforms/InstCombine/InstCombineSelect.cpp
The file was modified/llvm/trunk/test/Transforms/InstCombine/fabs.lltrunk/test/Transforms/InstCombine/fabs.ll
Revision 362943 by spatel:
[InstCombine] change canonicalization to fabs() to use FMF on fsub

Similar to rL362909:
This isn't the ideal fix (use FMF on the select), but it's still an
improvement until we have better FMF propagation to selects and other
FP math operators.

I don't think there's much risk of regression from this change by
not including the FMF on the fcmp any more. The nsz/nnan FMF
should be the same on the fcmp and the fsub because they have the
same operand.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Transforms/InstCombine/InstCombineSelect.cpptrunk/lib/Transforms/InstCombine/InstCombineSelect.cpp
The file was modified/llvm/trunk/test/Transforms/InstCombine/fabs.lltrunk/test/Transforms/InstCombine/fabs.ll
Revision 362942 by statham:
[ARM] Disallow PC, and optionally SP, in VMOVRH and VMOVHR.

Arm v8.1-M supports the VMOV instructions that move a half-precision
value to and from a GPR, but not if the GPR is SP or PC.

To fix this, I've changed those instructions to use the rGPR register
class instead of GPR. rGPR always excludes PC, and it excludes SP
except in the presence of the HasV8Ops target feature (i.e. Arm v8-A).
So the effect is that VMOV.F16 to and from PC is now illegal
everywhere, but VMOV.F16 to and from SP is illegal only on non-v8-A
cores (which I believe is all as it should be).

Reviewers: dmgreen, samparker, SjoerdMeijer, ostannard

Reviewed By: ostannard

Subscribers: ostannard, javed.absar, kristof.beyls, hiraditya, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D60704
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/ARM/ARMInstrVFP.tdtrunk/lib/Target/ARM/ARMInstrVFP.td
The file was added/llvm/trunk/test/MC/ARM/vmovhr.strunk/test/MC/ARM/vmovhr.s
Revision 362941 by mcinally:
[ExecutionEngine] Add UnaryOperator visitor to the interpreter

This is to support the unary FNeg instruction.

Differential Revision: https://reviews.llvm.org/D62881
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/ExecutionEngine/Interpreter/Execution.cpptrunk/lib/ExecutionEngine/Interpreter/Execution.cpp
The file was modified/llvm/trunk/lib/ExecutionEngine/Interpreter/Interpreter.htrunk/lib/ExecutionEngine/Interpreter/Interpreter.h
The file was modified/llvm/trunk/test/ExecutionEngine/test-interp-vec-arithm_float.lltrunk/test/ExecutionEngine/test-interp-vec-arithm_float.ll
Revision 362940 by grimar:
[yaml2obj] - Remove TODOs from dynsymtab-implicit-sections-size-content.yaml. NFCI.

Now when https://bugs.llvm.org/show_bug.cgi?id=42215 is fixed,
we can remove these TODOs.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/tools/yaml2obj/dynsymtab-implicit-sections-size-content.yamltrunk/test/tools/yaml2obj/dynsymtab-implicit-sections-size-content.yaml

Summary

  1. Re-land "[CodeComplete] Improve overload handling for C++ qualified and ref-qualified methods." ShadowMapEntry is now really, truly a normal class.
  2. Revert "[CodeComplete] Improve overload handling for C++ qualified and ref-qualified methods." This reverts commit r362924, which causes a double-free of ShadowMapEntry.
Revision 362950 by sammccall:
Re-land "[CodeComplete] Improve overload handling for C++ qualified and ref-qualified methods."

ShadowMapEntry is now really, truly a normal class.
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/Sema/SemaCodeComplete.cpptrunk/lib/Sema/SemaCodeComplete.cpp
The file was modified/cfe/trunk/test/CodeCompletion/member-access.cpptrunk/test/CodeCompletion/member-access.cpp
Revision 362944 by sammccall:
Revert "[CodeComplete] Improve overload handling for C++ qualified and ref-qualified methods."

This reverts commit r362924, which causes a double-free of ShadowMapEntry.
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/Sema/SemaCodeComplete.cpptrunk/lib/Sema/SemaCodeComplete.cpp
The file was modified/cfe/trunk/test/CodeCompletion/member-access.cpptrunk/test/CodeCompletion/member-access.cpp

Summary

  1. [clangd] Revamp textDocument/onTypeFormatting. Summary: The existing implementation (which triggers on }) is fairly simple and has flaws: - doesn't trigger frequently/regularly enough (particularly in editors that type the } for you) - often reformats too much code around the edit - has jarring cases that I don't have clear ideas for fixing This implementation is designed to trigger on newline, which feels to me more intuitive than } or ;. It does have allow for reformatting after other characters - it has a basic behavior and a model for adding specialized behavior for particular characters. But at least initially I'd stick to advertising \n in the capabilities. This also handles comment splitting: when you insert a line break inside a line comment, it will make the new line into an aligned line comment. Working on tests, but want people to patch it in and try it - it's hard to see if "feel" is right purely by looking at a test. Reviewers: ilya-biryukov, hokein Subscribers: mgorny, ioeric, MaskRay, jkorous, arphaman, kadircet, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D60605
Revision 362939 by sammccall:
[clangd] Revamp textDocument/onTypeFormatting.

Summary:
The existing implementation (which triggers on }) is fairly simple and
has flaws:
- doesn't trigger frequently/regularly enough (particularly in editors that type the }
for you)
- often reformats too much code around the edit
- has jarring cases that I don't have clear ideas for fixing

This implementation is designed to trigger on newline, which feels to me more
intuitive than } or ;.
It does have allow for reformatting after other characters - it has a
basic behavior and a model for adding specialized behavior for
particular characters. But at least initially I'd stick to advertising
\n in the capabilities.

This also handles comment splitting: when you insert a line break inside
a line comment, it will make the new line into an aligned line comment.

Working on tests, but want people to patch it in and try it - it's hard to
see if "feel" is right purely by looking at a test.

Reviewers: ilya-biryukov, hokein

Subscribers: mgorny, ioeric, MaskRay, jkorous, arphaman, kadircet, cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D60605
Change TypePath in RepositoryPath in Workspace
The file was modified/clang-tools-extra/trunk/clangd/CMakeLists.txttrunk/clangd/CMakeLists.txt
The file was modified/clang-tools-extra/trunk/clangd/ClangdLSPServer.cpptrunk/clangd/ClangdLSPServer.cpp
The file was modified/clang-tools-extra/trunk/clangd/ClangdServer.cpptrunk/clangd/ClangdServer.cpp
The file was modified/clang-tools-extra/trunk/clangd/ClangdServer.htrunk/clangd/ClangdServer.h
The file was added/clang-tools-extra/trunk/clangd/Format.cpptrunk/clangd/Format.cpp
The file was added/clang-tools-extra/trunk/clangd/Format.htrunk/clangd/Format.h
The file was modified/clang-tools-extra/trunk/clangd/test/formatting.testtrunk/clangd/test/formatting.test
The file was modified/clang-tools-extra/trunk/clangd/test/initialize-params.testtrunk/clangd/test/initialize-params.test
The file was modified/clang-tools-extra/trunk/clangd/unittests/CMakeLists.txttrunk/clangd/unittests/CMakeLists.txt
The file was added/clang-tools-extra/trunk/clangd/unittests/FormatTests.cpptrunk/clangd/unittests/FormatTests.cpp