SuccessChanges

Summary

  1. AMDGPU/GlobalISel: Fix legality for G_BUILD_VECTOR
  2. [AMDGPU] gfx908 v_pk_fmac_f16 support Differential Revision: https://reviews.llvm.org/D64433
  3. gn build: Merge r365536.
  4. gn build: Merge r365532.
  5. gn build: Merge r365541.
  6. gn build: Merge r365531.
  7. Add lldb type unit support to the release notes Reviewers: JDevlieghere, teemperor Subscribers: llvm-commits, lldb-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D64366
  8. GlobalISel: Combine unmerge of merge with intermediate cast This eliminates some illegal intermediate vectors when operations are scalarized.
  9. [Profile] Support raw/indexed profiles larger than 4GB rdar://45955976
  10. [llvm-objdump] Keep warning for --disassemble-functions in correct order. relative to normal output when dumping archive files. prepare for PR35351. Reviewers: jhenderson, grimar, MaskRay, rupprecht Reviewed by: MaskRay, jhenderson Differential Revision: https://reviews.llvm.org/D64165
  11. [AMDGPU] gfx908 mAI instructions, MC part Differential Revision: https://reviews.llvm.org/D64446
  12. [SLP] Optimize getSpillCost(); NFCI For a given set of live values, the spill cost will always be the same for each call. Compute the cost once and multiply it by the number of calls. (I'm not sure this spill cost modeling makes sense if there are multiple calls, as the spill cost will likely be shared across calls in that case. But that's how it currently works.)
  13. hwasan: Improve precision of checks using short granule tags. A short granule is a granule of size between 1 and `TG-1` bytes. The size of a short granule is stored at the location in shadow memory where the granule's tag is normally stored, while the granule's actual tag is stored in the last byte of the granule. This means that in order to verify that a pointer tag matches a memory tag, HWASAN must check for two possibilities: * the pointer tag is equal to the memory tag in shadow memory, or * the shadow memory tag is actually a short granule size, the value being loaded is in bounds of the granule and the pointer tag is equal to the last byte of the granule. Pointer tags between 1 to `TG-1` are possible and are as likely as any other tag. This means that these tags in memory have two interpretations: the full tag interpretation (where the pointer tag is between 1 and `TG-1` and the last byte of the granule is ordinary data) and the short tag interpretation (where the pointer tag is stored in the granule). When HWASAN detects an error near a memory tag between 1 and `TG-1`, it will show both the memory tag and the last byte of the granule. Currently, it is up to the user to disambiguate the two possibilities. Because this functionality obsoletes the right aligned heap feature of the HWASAN memory allocator (and because we can no longer easily test it), the feature is removed. Also update the documentation to cover both short granule tags and outlined checks. Differential Revision: https://reviews.llvm.org/D63908
  14. [PoisonChecking] Flesh out complete todo list for full coverage Note: I don't actually plan to implement all of the cases at the moment, I'm just documenting them for completeness. There's a couple of cases left which are practically useful for me in debugging loop transforms, and I'll probably stop there for the moment.
  15. [X86][AMDGPU][DAGCombiner] Move call to allowsMemoryAccess into isLoadBitCastBeneficial/isStoreBitCastBeneficial to allow X86 to bypass it Basically the problem is that X86 doesn't set the Fast flag from allowsMemoryAccess on certain CPUs due to slow unaligned memory subtarget features. This prevents bitcasts from being folded into loads and stores. But all vector loads and stores of the same width are the same cost on X86. This patch merges the allowsMemoryAccess call into isLoadBitCastBeneficial to allow X86 to skip it. Differential Revision: https://reviews.llvm.org/D64295
  16. Fix build error for VC STL, use llvm::make_unique
  17. [AMDGPU] gfx908 register file changes Differential Revision: https://reviews.llvm.org/D64438
  18. [PoisonCheker] Support for out of bounds operands on shifts + insert/extractelement These are sources of poison which don't come from flags, but are clearly documented in the LangRef. Left off support for scalable vectors for the moment, but should be easy to add if anyone is interested.
  19. Boilerplate for producing XCOFF object files from the PowerPC backend. Stubs out a number of the classes needed to produce a new object file format (XCOFF) for the powerpc-aix target. For testing input is an empty module which produces an object file with just a file header. Differential Revision: https://reviews.llvm.org/D61694
  20. [X86] LowerToHorizontalOp - use count_if to count non-UNDEF ops. NFCI.
  21. [PoisonChecking] Add validation rules for "exact" on sdiv/udiv As directly stated in the LangRef, no ambiguity here...
  22. [ThinLTO] only emit used or referenced CFI records to index Summary: We emit CFI_FUNCTION_DEFS and CFI_FUNCTION_DECLS to distributed ThinLTO indices to implement indirect function call checking. This change causes us to only emit entries for functions that are either defined or used by the module we're writing the index for (instead of all functions in the combined index), which can make the indices substantially smaller. Fixes PR42378. Reviewers: pcc, vitalybuka, eugenis Subscribers: mehdi_amini, hiraditya, dexonsmith, arphaman, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D63887
  23. Add a transform pass to make the executable semantics of poison explicit in the IR Implements a transform pass which instruments IR such that poison semantics are made explicit. That is, it provides a (possibly partial) executable semantics for every instruction w.r.t. poison as specified in the LLVM LangRef. There are obvious parallels to the sanitizer tools, but this pass is focused purely on the semantics of LLVM IR, not any particular source language. The target audience for this tool is developers working on or targetting LLVM from a frontend. The idea is to be able to take arbitrary IR (with the assumption of known inputs), and evaluate it concretely after having made poison semantics explicit to detect cases where either a) the original code executes UB, or b) a transform pass introduces UB which didn't exist in the original program. At the moment, this is mostly the framework and still needs to be fleshed out. By reusing existing code we have decent coverage, but there's a lot of cases not yet handled. What's here is good enough to handle interesting cases though; for instance, one of the recent LFTR bugs involved UB being triggered by integer induction variables with nsw/nuw flags would be reported by the current code. (See comment in PoisonChecking.cpp for full explanation and context) Differential Revision: https://reviews.llvm.org/D64215
  24. Try to appease the Windows build bots. Several of the conditonal operators commited in llvm-svn: 365524 fail to compile on the windows buildbots. Converting to an if and early return to try to fix.
  25. [BPF] Fix a typo in the file name Fixed the file name from BPFAbstrctMemberAccess.cpp to BPFAbstractMemberAccess.cpp. Signed-off-by: Yonghong Song <yhs@fb.com>
  26. gn build: Merge r365503.
  27. [unittest] Add the missing bogus machine register info initialization.
  28. [AMDGPU] gfx908 target Differential Revision: https://reviews.llvm.org/D64429
  29. [Object][XCOFF] Add support for 64-bit file header and section header dumping. Adds a readobj dumper for 32-bit and 64-bit section header tables, and extend support for the file-header dumping to include 64-bit object files. Also refactors the binary file parsing to be done in a helper function in an attempt to cleanup error handeling. Differential Revision: https://reviews.llvm.org/D63843
  30. [InstCombine] add tests for trunc(load); NFC I'm not sure if transforming any of these is valid as a target-independent fold, but we might as well have a few tests here to confirm or deny our position.
  31. AMDGPU: Fix test failing since r365512
  32. Revert "[HardwareLoops] NFC - move hardware loop checking code to isHardwareLoopProfitable()" This reverts commit d95557306585404893d610784edb3e32f1bfce18.
  33. Add lit.local.cfg to llvm-objdump tests Add configuration file to llvm-objdump tests to treat files with .yaml extension as tests.
  34. Remove a comment that has been obsolete since r327679
  35. [unittest] Add bogus register info. Reviewers: dstenb Subscribers: llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D64421
  36. Rename llvm/test/tools/llvm-pdbdump to llvm/test/tools/llvm-pdbutil llvm-pdbdump was renamed to llvm-pdbutil long ago. This updates the test to be where you'd expect them to be.
  37. Make pdbdump-objfilename test work again - The test had extension .yaml, which lit doesn't execute in this directory. Rename to .test to make it run, and move the yaml bits into a dedicated file, like with all other tests in this dir. - llvm-pdbdump got renamed to llvm-pdbutil long ago, update test. - -dbi-module-info got renamed in r305032, update test for this too.
Revision 365575 by arsenm:
AMDGPU/GlobalISel: Fix legality for G_BUILD_VECTOR
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpptrunk/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-ashr.mirtrunk/test/CodeGen/AMDGPU/GlobalISel/legalize-ashr.mir
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-build-vector.mirtrunk/test/CodeGen/AMDGPU/GlobalISel/legalize-build-vector.mir
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-fabs.mirtrunk/test/CodeGen/AMDGPU/GlobalISel/legalize-fabs.mir
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-fadd.mirtrunk/test/CodeGen/AMDGPU/GlobalISel/legalize-fadd.mir
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-fcanonicalize.mirtrunk/test/CodeGen/AMDGPU/GlobalISel/legalize-fcanonicalize.mir
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-fcmp.mirtrunk/test/CodeGen/AMDGPU/GlobalISel/legalize-fcmp.mir
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-fma.mirtrunk/test/CodeGen/AMDGPU/GlobalISel/legalize-fma.mir
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-fmul.mirtrunk/test/CodeGen/AMDGPU/GlobalISel/legalize-fmul.mir
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-fneg.mirtrunk/test/CodeGen/AMDGPU/GlobalISel/legalize-fneg.mir
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-fsqrt.mirtrunk/test/CodeGen/AMDGPU/GlobalISel/legalize-fsqrt.mir
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-fsub.mirtrunk/test/CodeGen/AMDGPU/GlobalISel/legalize-fsub.mir
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-icmp.mirtrunk/test/CodeGen/AMDGPU/GlobalISel/legalize-icmp.mir
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-lshr.mirtrunk/test/CodeGen/AMDGPU/GlobalISel/legalize-lshr.mir
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-phi.mirtrunk/test/CodeGen/AMDGPU/GlobalISel/legalize-phi.mir
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-shl.mirtrunk/test/CodeGen/AMDGPU/GlobalISel/legalize-shl.mir
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-smax.mirtrunk/test/CodeGen/AMDGPU/GlobalISel/legalize-smax.mir
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-smin.mirtrunk/test/CodeGen/AMDGPU/GlobalISel/legalize-smin.mir
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-umax.mirtrunk/test/CodeGen/AMDGPU/GlobalISel/legalize-umax.mir
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-umin.mirtrunk/test/CodeGen/AMDGPU/GlobalISel/legalize-umin.mir
Revision 365573 by rampitec:
[AMDGPU] gfx908 v_pk_fmac_f16 support

Differential Revision: https://reviews.llvm.org/D64433
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/AMDGPU/AMDGPU.tdtrunk/lib/Target/AMDGPU/AMDGPU.td
The file was modified/llvm/trunk/lib/Target/AMDGPU/VOP2Instructions.tdtrunk/lib/Target/AMDGPU/VOP2Instructions.td
The file was added/llvm/trunk/test/MC/AMDGPU/xdl-insts-gfx908.strunk/test/MC/AMDGPU/xdl-insts-gfx908.s
The file was added/llvm/trunk/test/MC/Disassembler/AMDGPU/xdl-insts-gfx908.txttrunk/test/MC/Disassembler/AMDGPU/xdl-insts-gfx908.txt
Revision 365572 by pcc:
gn build: Merge r365536.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/utils/gn/secondary/llvm/lib/Transforms/Instrumentation/BUILD.gntrunk/utils/gn/secondary/llvm/lib/Transforms/Instrumentation/BUILD.gn
Revision 365571 by pcc:
gn build: Merge r365532.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/utils/gn/secondary/llvm/lib/Target/BPF/BUILD.gntrunk/utils/gn/secondary/llvm/lib/Target/BPF/BUILD.gn
Revision 365570 by pcc:
gn build: Merge r365541.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/utils/gn/secondary/llvm/lib/MC/BUILD.gntrunk/utils/gn/secondary/llvm/lib/MC/BUILD.gn
The file was modified/llvm/trunk/utils/gn/secondary/llvm/lib/Target/PowerPC/MCTargetDesc/BUILD.gntrunk/utils/gn/secondary/llvm/lib/Target/PowerPC/MCTargetDesc/BUILD.gn
Revision 365569 by pcc:
gn build: Merge r365531.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/utils/gn/secondary/clang-tools-extra/clangd/BUILD.gntrunk/utils/gn/secondary/clang-tools-extra/clangd/BUILD.gn
Revision 365568 by labath:
Add lldb type unit support to the release notes

Reviewers: JDevlieghere, teemperor

Subscribers: llvm-commits, lldb-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D64366
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/docs/ReleaseNotes.rsttrunk/docs/ReleaseNotes.rst
Revision 365566 by arsenm:
GlobalISel: Combine unmerge of merge with intermediate cast

This eliminates some illegal intermediate vectors when operations are
scalarized.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/CodeGen/GlobalISel/LegalizationArtifactCombiner.htrunk/include/llvm/CodeGen/GlobalISel/LegalizationArtifactCombiner.h
The file was modified/llvm/trunk/include/llvm/CodeGen/GlobalISel/Utils.htrunk/include/llvm/CodeGen/GlobalISel/Utils.h
The file was modified/llvm/trunk/lib/CodeGen/GlobalISel/Utils.cpptrunk/lib/CodeGen/GlobalISel/Utils.cpp
The file was added/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/artifact-combiner-unmerge-values.mirtrunk/test/CodeGen/AMDGPU/GlobalISel/artifact-combiner-unmerge-values.mir
Revision 365565 by Vedant Kumar:
[Profile] Support raw/indexed profiles larger than 4GB

rdar://45955976
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/ProfileData/InstrProfReader.cpptrunk/lib/ProfileData/InstrProfReader.cpp
The file was modified/llvm/trunk/unittests/ProfileData/InstrProfTest.cpptrunk/unittests/ProfileData/InstrProfTest.cpp
Revision 365564 by yuanfang:
[llvm-objdump] Keep warning for --disassemble-functions in correct order.

relative to normal output when dumping archive files.

prepare for PR35351.

Reviewers: jhenderson, grimar, MaskRay, rupprecht

Reviewed by: MaskRay, jhenderson

Differential Revision: https://reviews.llvm.org/D64165
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/tools/llvm-objdump/X86/warn-missing-disasm-func.testtrunk/test/tools/llvm-objdump/X86/warn-missing-disasm-func.test
The file was modified/llvm/trunk/tools/llvm-objdump/llvm-objdump.cpptrunk/tools/llvm-objdump/llvm-objdump.cpp
Revision 365563 by rampitec:
[AMDGPU] gfx908 mAI instructions, MC part

Differential Revision: https://reviews.llvm.org/D64446
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/IR/IntrinsicsAMDGPU.tdtrunk/include/llvm/IR/IntrinsicsAMDGPU.td
The file was modified/llvm/trunk/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpptrunk/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp
The file was modified/llvm/trunk/lib/Target/AMDGPU/AMDGPURegAsmNames.inc.cpptrunk/lib/Target/AMDGPU/AMDGPURegAsmNames.inc.cpp
The file was modified/llvm/trunk/lib/Target/AMDGPU/AMDGPURegisterInfo.cpptrunk/lib/Target/AMDGPU/AMDGPURegisterInfo.cpp
The file was modified/llvm/trunk/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpptrunk/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp
The file was modified/llvm/trunk/lib/Target/AMDGPU/MCTargetDesc/AMDGPUInstPrinter.cpptrunk/lib/Target/AMDGPU/MCTargetDesc/AMDGPUInstPrinter.cpp
The file was modified/llvm/trunk/lib/Target/AMDGPU/MCTargetDesc/AMDGPUInstPrinter.htrunk/lib/Target/AMDGPU/MCTargetDesc/AMDGPUInstPrinter.h
The file was modified/llvm/trunk/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCCodeEmitter.htrunk/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCCodeEmitter.h
The file was modified/llvm/trunk/lib/Target/AMDGPU/MCTargetDesc/SIMCCodeEmitter.cpptrunk/lib/Target/AMDGPU/MCTargetDesc/SIMCCodeEmitter.cpp
The file was modified/llvm/trunk/lib/Target/AMDGPU/SIDefines.htrunk/lib/Target/AMDGPU/SIDefines.h
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/SIInstrFormats.tdtrunk/lib/Target/AMDGPU/SIInstrFormats.td
The file was modified/llvm/trunk/lib/Target/AMDGPU/SIInstrInfo.htrunk/lib/Target/AMDGPU/SIInstrInfo.h
The file was modified/llvm/trunk/lib/Target/AMDGPU/SIInstrInfo.tdtrunk/lib/Target/AMDGPU/SIInstrInfo.td
The file was modified/llvm/trunk/lib/Target/AMDGPU/SIRegisterInfo.cpptrunk/lib/Target/AMDGPU/SIRegisterInfo.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 modified/llvm/trunk/lib/Target/AMDGPU/VOP3Instructions.tdtrunk/lib/Target/AMDGPU/VOP3Instructions.td
The file was modified/llvm/trunk/lib/Target/AMDGPU/VOP3PInstructions.tdtrunk/lib/Target/AMDGPU/VOP3PInstructions.td
The file was modified/llvm/trunk/lib/Target/AMDGPU/VOPInstructions.tdtrunk/lib/Target/AMDGPU/VOPInstructions.td
The file was added/llvm/trunk/test/MC/AMDGPU/accvgpr-altnames.strunk/test/MC/AMDGPU/accvgpr-altnames.s
The file was added/llvm/trunk/test/MC/AMDGPU/mai-err.strunk/test/MC/AMDGPU/mai-err.s
The file was added/llvm/trunk/test/MC/AMDGPU/mai.strunk/test/MC/AMDGPU/mai.s
The file was added/llvm/trunk/test/MC/Disassembler/AMDGPU/mai.txttrunk/test/MC/Disassembler/AMDGPU/mai.txt
Revision 365552 by nikic:
[SLP] Optimize getSpillCost(); NFCI

For a given set of live values, the spill cost will always be the
same for each call. Compute the cost once and multiply it by the
number of calls.

(I'm not sure this spill cost modeling makes sense if there are
multiple calls, as the spill cost will likely be shared across
calls in that case. But that's how it currently works.)
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Transforms/Vectorize/SLPVectorizer.cpptrunk/lib/Transforms/Vectorize/SLPVectorizer.cpp
Revision 365551 by pcc:
hwasan: Improve precision of checks using short granule tags.

A short granule is a granule of size between 1 and `TG-1` bytes. The size
of a short granule is stored at the location in shadow memory where the
granule's tag is normally stored, while the granule's actual tag is stored
in the last byte of the granule. This means that in order to verify that a
pointer tag matches a memory tag, HWASAN must check for two possibilities:

* the pointer tag is equal to the memory tag in shadow memory, or
* the shadow memory tag is actually a short granule size, the value being loaded
  is in bounds of the granule and the pointer tag is equal to the last byte of
  the granule.

Pointer tags between 1 to `TG-1` are possible and are as likely as any other
tag. This means that these tags in memory have two interpretations: the full
tag interpretation (where the pointer tag is between 1 and `TG-1` and the
last byte of the granule is ordinary data) and the short tag interpretation
(where the pointer tag is stored in the granule).

When HWASAN detects an error near a memory tag between 1 and `TG-1`, it
will show both the memory tag and the last byte of the granule. Currently,
it is up to the user to disambiguate the two possibilities.

Because this functionality obsoletes the right aligned heap feature of
the HWASAN memory allocator (and because we can no longer easily test
it), the feature is removed.

Also update the documentation to cover both short granule tags and
outlined checks.

Differential Revision: https://reviews.llvm.org/D63908
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/docs/HardwareAssistedAddressSanitizerDesign.rstN/A
The file was modified/compiler-rt/trunk/lib/hwasan/hwasan_allocator.cppN/A
The file was modified/compiler-rt/trunk/lib/hwasan/hwasan_checks.hN/A
The file was modified/compiler-rt/trunk/lib/hwasan/hwasan_flags.incN/A
The file was modified/compiler-rt/trunk/lib/hwasan/hwasan_report.cppN/A
The file was modified/compiler-rt/trunk/lib/hwasan/hwasan_report.hN/A
The file was modified/compiler-rt/trunk/test/hwasan/TestCases/heap-buffer-overflow.cN/A
The file was removed/compiler-rt/trunk/test/hwasan/TestCases/random-align-right.cN/A
The file was modified/compiler-rt/trunk/test/hwasan/TestCases/stack-oob.cN/A
The file was modified/compiler-rt/trunk/test/hwasan/TestCases/tail-magic.cN/A
The file was modified/llvm/trunk/lib/Target/AArch64/AArch64AsmPrinter.cpptrunk/lib/Target/AArch64/AArch64AsmPrinter.cpp
The file was modified/llvm/trunk/lib/Transforms/Instrumentation/HWAddressSanitizer.cpptrunk/lib/Transforms/Instrumentation/HWAddressSanitizer.cpp
The file was modified/llvm/trunk/test/CodeGen/AArch64/hwasan-check-memaccess.lltrunk/test/CodeGen/AArch64/hwasan-check-memaccess.ll
The file was modified/llvm/trunk/test/Instrumentation/HWAddressSanitizer/alloca-with-calls.lltrunk/test/Instrumentation/HWAddressSanitizer/alloca-with-calls.ll
The file was modified/llvm/trunk/test/Instrumentation/HWAddressSanitizer/alloca.lltrunk/test/Instrumentation/HWAddressSanitizer/alloca.ll
The file was modified/llvm/trunk/test/Instrumentation/HWAddressSanitizer/basic.lltrunk/test/Instrumentation/HWAddressSanitizer/basic.ll
The file was modified/llvm/trunk/test/Instrumentation/HWAddressSanitizer/kernel-alloca.lltrunk/test/Instrumentation/HWAddressSanitizer/kernel-alloca.ll
Revision 365550 by reames:
[PoisonChecking] Flesh out complete todo list for full coverage

Note: I don't actually plan to implement all of the cases at the moment, I'm just documenting them for completeness.  There's a couple of cases left which are practically useful for me in debugging loop transforms, and I'll probably stop there for the moment.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Transforms/Instrumentation/PoisonChecking.cpptrunk/lib/Transforms/Instrumentation/PoisonChecking.cpp
Revision 365549 by ctopper:
[X86][AMDGPU][DAGCombiner] Move call to allowsMemoryAccess into isLoadBitCastBeneficial/isStoreBitCastBeneficial to allow X86 to bypass it

Basically the problem is that X86 doesn't set the Fast flag from
allowsMemoryAccess on certain CPUs due to slow unaligned memory
subtarget features. This prevents bitcasts from being folded into
loads and stores. But all vector loads and stores of the same width
are the same cost on X86.

This patch merges the allowsMemoryAccess call into isLoadBitCastBeneficial to allow X86 to skip it.

Differential Revision: https://reviews.llvm.org/D64295
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/CodeGen/TargetLowering.htrunk/include/llvm/CodeGen/TargetLowering.h
The file was modified/llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpptrunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
The file was modified/llvm/trunk/lib/Target/AMDGPU/AMDGPUISelLowering.cpptrunk/lib/Target/AMDGPU/AMDGPUISelLowering.cpp
The file was modified/llvm/trunk/lib/Target/AMDGPU/AMDGPUISelLowering.htrunk/lib/Target/AMDGPU/AMDGPUISelLowering.h
The file was modified/llvm/trunk/lib/Target/X86/X86ISelLowering.cpptrunk/lib/Target/X86/X86ISelLowering.cpp
The file was modified/llvm/trunk/lib/Target/X86/X86ISelLowering.htrunk/lib/Target/X86/X86ISelLowering.h
The file was modified/llvm/trunk/test/CodeGen/X86/merge-consecutive-stores-nt.lltrunk/test/CodeGen/X86/merge-consecutive-stores-nt.ll
The file was modified/llvm/trunk/test/CodeGen/X86/vector-shuffle-128-v4.lltrunk/test/CodeGen/X86/vector-shuffle-128-v4.ll
Revision 365548 by rnk:
Fix build error for VC STL, use llvm::make_unique
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/MC/XCOFFObjectWriter.cpptrunk/lib/MC/XCOFFObjectWriter.cpp
Revision 365546 by rampitec:
[AMDGPU] gfx908 register file changes

Differential Revision: https://reviews.llvm.org/D64438
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/AMDGPU/AMDGPURegisterInfo.tdtrunk/lib/Target/AMDGPU/AMDGPURegisterInfo.td
The file was modified/llvm/trunk/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpptrunk/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
The file was modified/llvm/trunk/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpptrunk/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp
The file was modified/llvm/trunk/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.htrunk/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.h
The file was modified/llvm/trunk/lib/Target/AMDGPU/SIDefines.htrunk/lib/Target/AMDGPU/SIDefines.h
The file was modified/llvm/trunk/lib/Target/AMDGPU/SIRegisterInfo.tdtrunk/lib/Target/AMDGPU/SIRegisterInfo.td
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/ipra-regmask.lltrunk/test/CodeGen/AMDGPU/ipra-regmask.ll
Revision 365543 by reames:
[PoisonCheker] Support for out of bounds operands on shifts + insert/extractelement

These are sources of poison which don't come from flags, but are clearly documented in the LangRef.  Left off support for scalable vectors for the moment, but should be easy to add if anyone is interested.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Transforms/Instrumentation/PoisonChecking.cpptrunk/lib/Transforms/Instrumentation/PoisonChecking.cpp
The file was modified/llvm/trunk/test/Instrumentation/PoisonChecking/basic-flag-validation.lltrunk/test/Instrumentation/PoisonChecking/basic-flag-validation.ll
Revision 365541 by sfertile:
Boilerplate for producing XCOFF object files from the PowerPC backend.

Stubs out a number of the classes needed to produce a new object file format
(XCOFF) for the powerpc-aix target. For testing input is an empty module which
produces an object file with just a file header.

Differential Revision: https://reviews.llvm.org/D61694
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/BinaryFormat/XCOFF.htrunk/include/llvm/BinaryFormat/XCOFF.h
The file was added/llvm/trunk/include/llvm/MC/MCAsmInfoXCOFF.htrunk/include/llvm/MC/MCAsmInfoXCOFF.h
The file was modified/llvm/trunk/include/llvm/MC/MCContext.htrunk/include/llvm/MC/MCContext.h
The file was modified/llvm/trunk/include/llvm/MC/MCObjectFileInfo.htrunk/include/llvm/MC/MCObjectFileInfo.h
The file was modified/llvm/trunk/include/llvm/MC/MCSection.htrunk/include/llvm/MC/MCSection.h
The file was added/llvm/trunk/include/llvm/MC/MCSectionXCOFF.htrunk/include/llvm/MC/MCSectionXCOFF.h
The file was added/llvm/trunk/include/llvm/MC/MCXCOFFObjectWriter.htrunk/include/llvm/MC/MCXCOFFObjectWriter.h
The file was added/llvm/trunk/include/llvm/MC/MCXCOFFStreamer.htrunk/include/llvm/MC/MCXCOFFStreamer.h
The file was modified/llvm/trunk/include/llvm/Support/TargetRegistry.htrunk/include/llvm/Support/TargetRegistry.h
The file was modified/llvm/trunk/lib/MC/CMakeLists.txttrunk/lib/MC/CMakeLists.txt
The file was modified/llvm/trunk/lib/MC/MCAsmBackend.cpptrunk/lib/MC/MCAsmBackend.cpp
The file was added/llvm/trunk/lib/MC/MCAsmInfoXCOFF.cpptrunk/lib/MC/MCAsmInfoXCOFF.cpp
The file was modified/llvm/trunk/lib/MC/MCContext.cpptrunk/lib/MC/MCContext.cpp
The file was modified/llvm/trunk/lib/MC/MCObjectFileInfo.cpptrunk/lib/MC/MCObjectFileInfo.cpp
The file was added/llvm/trunk/lib/MC/MCSectionXCOFF.cpptrunk/lib/MC/MCSectionXCOFF.cpp
The file was added/llvm/trunk/lib/MC/MCXCOFFObjectTargetWriter.cpptrunk/lib/MC/MCXCOFFObjectTargetWriter.cpp
The file was added/llvm/trunk/lib/MC/MCXCOFFStreamer.cpptrunk/lib/MC/MCXCOFFStreamer.cpp
The file was added/llvm/trunk/lib/MC/XCOFFObjectWriter.cpptrunk/lib/MC/XCOFFObjectWriter.cpp
The file was modified/llvm/trunk/lib/Target/PowerPC/MCTargetDesc/CMakeLists.txttrunk/lib/Target/PowerPC/MCTargetDesc/CMakeLists.txt
The file was modified/llvm/trunk/lib/Target/PowerPC/MCTargetDesc/PPCAsmBackend.cpptrunk/lib/Target/PowerPC/MCTargetDesc/PPCAsmBackend.cpp
The file was modified/llvm/trunk/lib/Target/PowerPC/MCTargetDesc/PPCMCAsmInfo.cpptrunk/lib/Target/PowerPC/MCTargetDesc/PPCMCAsmInfo.cpp
The file was modified/llvm/trunk/lib/Target/PowerPC/MCTargetDesc/PPCMCAsmInfo.htrunk/lib/Target/PowerPC/MCTargetDesc/PPCMCAsmInfo.h
The file was modified/llvm/trunk/lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.cpptrunk/lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.cpp
The file was modified/llvm/trunk/lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.htrunk/lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.h
The file was added/llvm/trunk/lib/Target/PowerPC/MCTargetDesc/PPCXCOFFObjectWriter.cpptrunk/lib/Target/PowerPC/MCTargetDesc/PPCXCOFFObjectWriter.cpp
The file was modified/llvm/trunk/lib/Target/PowerPC/PPCAsmPrinter.cpptrunk/lib/Target/PowerPC/PPCAsmPrinter.cpp
The file was added/llvm/trunk/test/CodeGen/PowerPC/aix-xcoff-basic.lltrunk/test/CodeGen/PowerPC/aix-xcoff-basic.ll
Revision 365540 by rksimon:
[X86] LowerToHorizontalOp - use count_if to count non-UNDEF ops. NFCI.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/X86/X86ISelLowering.cpptrunk/lib/Target/X86/X86ISelLowering.cpp
Revision 365538 by reames:
[PoisonChecking] Add validation rules for "exact" on sdiv/udiv

As directly stated in the LangRef, no ambiguity here...
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Transforms/Instrumentation/PoisonChecking.cpptrunk/lib/Transforms/Instrumentation/PoisonChecking.cpp
The file was modified/llvm/trunk/test/Instrumentation/PoisonChecking/basic-flag-validation.lltrunk/test/Instrumentation/PoisonChecking/basic-flag-validation.ll
Revision 365537 by inglorion:
[ThinLTO] only emit used or referenced CFI records to index

Summary: We emit CFI_FUNCTION_DEFS and CFI_FUNCTION_DECLS to
distributed ThinLTO indices to implement indirect function call
checking.  This change causes us to only emit entries for functions
that are either defined or used by the module we're writing the index
for (instead of all functions in the combined index), which can make
the indices substantially smaller.

Fixes PR42378.

Reviewers: pcc, vitalybuka, eugenis

Subscribers: mehdi_amini, hiraditya, dexonsmith, arphaman, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D63887
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Bitcode/Writer/BitcodeWriter.cpptrunk/lib/Bitcode/Writer/BitcodeWriter.cpp
The file was added/llvm/trunk/test/ThinLTO/X86/Inputs/cfi-icall-only-bazqux.lltrunk/test/ThinLTO/X86/Inputs/cfi-icall-only-bazqux.ll
The file was added/llvm/trunk/test/ThinLTO/X86/cfi-icall-only-defuse.lltrunk/test/ThinLTO/X86/cfi-icall-only-defuse.ll
Revision 365536 by reames:
Add a transform pass to make the executable semantics of poison explicit in the IR

Implements a transform pass which instruments IR such that poison semantics are made explicit. That is, it provides a (possibly partial) executable semantics for every instruction w.r.t. poison as specified in the LLVM LangRef. There are obvious parallels to the sanitizer tools, but this pass is focused purely on the semantics of LLVM IR, not any particular source language.

The target audience for this tool is developers working on or targetting LLVM from a frontend. The idea is to be able to take arbitrary IR (with the assumption of known inputs), and evaluate it concretely after having made poison semantics explicit to detect cases where either a) the original code executes UB, or b) a transform pass introduces UB which didn't exist in the original program.

At the moment, this is mostly the framework and still needs to be fleshed out. By reusing existing code we have decent coverage, but there's a lot of cases not yet handled. What's here is good enough to handle interesting cases though; for instance, one of the recent LFTR bugs involved UB being triggered by integer induction variables with nsw/nuw flags would be reported by the current code.

(See comment in PoisonChecking.cpp for full explanation and context)

Differential Revision: https://reviews.llvm.org/D64215
Change TypePath in RepositoryPath in Workspace
The file was added/llvm/trunk/include/llvm/Transforms/Instrumentation/PoisonChecking.htrunk/include/llvm/Transforms/Instrumentation/PoisonChecking.h
The file was modified/llvm/trunk/lib/IR/Instruction.cpptrunk/lib/IR/Instruction.cpp
The file was modified/llvm/trunk/lib/Passes/PassBuilder.cpptrunk/lib/Passes/PassBuilder.cpp
The file was modified/llvm/trunk/lib/Passes/PassRegistry.deftrunk/lib/Passes/PassRegistry.def
The file was modified/llvm/trunk/lib/Transforms/Instrumentation/CMakeLists.txttrunk/lib/Transforms/Instrumentation/CMakeLists.txt
The file was added/llvm/trunk/lib/Transforms/Instrumentation/PoisonChecking.cpptrunk/lib/Transforms/Instrumentation/PoisonChecking.cpp
The file was added/llvm/trunk/test/Instrumentation/PoisonCheckingtrunk/test/Instrumentation/PoisonChecking
The file was added/llvm/trunk/test/Instrumentation/PoisonChecking/basic-flag-validation.lltrunk/test/Instrumentation/PoisonChecking/basic-flag-validation.ll
The file was added/llvm/trunk/test/Instrumentation/PoisonChecking/ub-checks.lltrunk/test/Instrumentation/PoisonChecking/ub-checks.ll
Revision 365535 by sfertile:
Try to appease the Windows build bots.

Several of the conditonal operators commited in llvm-svn: 365524 fail to compile
on the windows buildbots. Converting to an if and early return to try to fix.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Object/XCOFFObjectFile.cpptrunk/lib/Object/XCOFFObjectFile.cpp
Revision 365532 by yhs:
[BPF] Fix a typo in the file name

Fixed the file name from BPFAbstrctMemberAccess.cpp to
BPFAbstractMemberAccess.cpp.

Signed-off-by: Yonghong Song <yhs@fb.com>
Change TypePath in RepositoryPath in Workspace
The file was added/llvm/trunk/lib/Target/BPF/BPFAbstractMemberAccess.cpptrunk/lib/Target/BPF/BPFAbstractMemberAccess.cpp
The file was removed/llvm/trunk/lib/Target/BPF/BPFAbstrctMemberAccess.cpptrunk/lib/Target/BPF/BPFAbstrctMemberAccess.cpp
The file was modified/llvm/trunk/lib/Target/BPF/CMakeLists.txttrunk/lib/Target/BPF/CMakeLists.txt
Revision 365530 by pcc:
gn build: Merge r365503.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/utils/gn/secondary/llvm/lib/Target/BPF/BUILD.gntrunk/utils/gn/secondary/llvm/lib/Target/BPF/BUILD.gn
Revision 365529 by hliao:
[unittest] Add the missing bogus machine register info initialization.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/unittests/CodeGen/MachineInstrTest.cpptrunk/unittests/CodeGen/MachineInstrTest.cpp
Revision 365525 by rampitec:
[AMDGPU] gfx908 target

Differential Revision: https://reviews.llvm.org/D64429
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/docs/AMDGPUUsage.rsttrunk/docs/AMDGPUUsage.rst
The file was modified/llvm/trunk/include/llvm/BinaryFormat/ELF.htrunk/include/llvm/BinaryFormat/ELF.h
The file was modified/llvm/trunk/include/llvm/Support/TargetParser.htrunk/include/llvm/Support/TargetParser.h
The file was modified/llvm/trunk/lib/ObjectYAML/ELFYAML.cpptrunk/lib/ObjectYAML/ELFYAML.cpp
The file was modified/llvm/trunk/lib/Support/TargetParser.cpptrunk/lib/Support/TargetParser.cpp
The file was modified/llvm/trunk/lib/Target/AMDGPU/AMDGPU.tdtrunk/lib/Target/AMDGPU/AMDGPU.td
The file was modified/llvm/trunk/lib/Target/AMDGPU/AMDGPUSubtarget.cpptrunk/lib/Target/AMDGPU/AMDGPUSubtarget.cpp
The file was modified/llvm/trunk/lib/Target/AMDGPU/AMDGPUSubtarget.htrunk/lib/Target/AMDGPU/AMDGPUSubtarget.h
The file was modified/llvm/trunk/lib/Target/AMDGPU/GCNProcessors.tdtrunk/lib/Target/AMDGPU/GCNProcessors.td
The file was modified/llvm/trunk/lib/Target/AMDGPU/MCTargetDesc/AMDGPUTargetStreamer.cpptrunk/lib/Target/AMDGPU/MCTargetDesc/AMDGPUTargetStreamer.cpp
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/elf-header-flags-mach.lltrunk/test/CodeGen/AMDGPU/elf-header-flags-mach.ll
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/elf-header-flags-sram-ecc.lltrunk/test/CodeGen/AMDGPU/elf-header-flags-sram-ecc.ll
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/hsa-note-no-func.lltrunk/test/CodeGen/AMDGPU/hsa-note-no-func.ll
The file was modified/llvm/trunk/test/MC/AMDGPU/dl-insts.strunk/test/MC/AMDGPU/dl-insts.s
The file was modified/llvm/trunk/test/MC/Disassembler/AMDGPU/dl-insts.txttrunk/test/MC/Disassembler/AMDGPU/dl-insts.txt
The file was modified/llvm/trunk/test/Object/AMDGPU/elf-header-flags-mach.yamltrunk/test/Object/AMDGPU/elf-header-flags-mach.yaml
The file was modified/llvm/trunk/tools/llvm-readobj/ELFDumper.cpptrunk/tools/llvm-readobj/ELFDumper.cpp
Revision 365524 by sfertile:
[Object][XCOFF] Add support for 64-bit file header and section header dumping.

Adds a readobj dumper for 32-bit and 64-bit section header tables, and extend
support for the file-header dumping to include 64-bit object files. Also
refactors the binary file parsing to be done in a helper function in an attempt
to cleanup error handeling.

Differential Revision: https://reviews.llvm.org/D63843
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/BinaryFormat/Magic.htrunk/include/llvm/BinaryFormat/Magic.h
The file was modified/llvm/trunk/include/llvm/Object/Binary.htrunk/include/llvm/Object/Binary.h
The file was modified/llvm/trunk/include/llvm/Object/ObjectFile.htrunk/include/llvm/Object/ObjectFile.h
The file was modified/llvm/trunk/include/llvm/Object/XCOFFObjectFile.htrunk/include/llvm/Object/XCOFFObjectFile.h
The file was modified/llvm/trunk/lib/BinaryFormat/Magic.cpptrunk/lib/BinaryFormat/Magic.cpp
The file was modified/llvm/trunk/lib/Object/Binary.cpptrunk/lib/Object/Binary.cpp
The file was modified/llvm/trunk/lib/Object/ObjectFile.cpptrunk/lib/Object/ObjectFile.cpp
The file was modified/llvm/trunk/lib/Object/SymbolicFile.cpptrunk/lib/Object/SymbolicFile.cpp
The file was modified/llvm/trunk/lib/Object/XCOFFObjectFile.cpptrunk/lib/Object/XCOFFObjectFile.cpp
The file was added/llvm/trunk/test/tools/llvm-readobj/Inputs/xcoff-basic-64.otrunk/test/tools/llvm-readobj/Inputs/xcoff-basic-64.o
The file was modified/llvm/trunk/test/tools/llvm-readobj/xcoff-basic.testtrunk/test/tools/llvm-readobj/xcoff-basic.test
The file was added/llvm/trunk/test/tools/llvm-readobj/xcoff-sections.testtrunk/test/tools/llvm-readobj/xcoff-sections.test
The file was modified/llvm/trunk/tools/llvm-readobj/XCOFFDumper.cpptrunk/tools/llvm-readobj/XCOFFDumper.cpp
The file was modified/llvm/trunk/tools/obj2yaml/xcoff2yaml.cpptrunk/tools/obj2yaml/xcoff2yaml.cpp
Revision 365523 by spatel:
[InstCombine] add tests for trunc(load); NFC

I'm not sure if transforming any of these is valid as
a target-independent fold, but we might as well have
a few tests here to confirm or deny our position.
Change TypePath in RepositoryPath in Workspace
The file was added/llvm/trunk/test/Transforms/InstCombine/trunc-load.lltrunk/test/Transforms/InstCombine/trunc-load.ll
Revision 365521 by arsenm:
AMDGPU: Fix test failing since r365512
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/spill-before-exec.mirtrunk/test/CodeGen/AMDGPU/spill-before-exec.mir
Revision 365520 by jsji:
Revert "[HardwareLoops] NFC - move hardware loop checking code to isHardwareLoopProfitable()"

This reverts commit d95557306585404893d610784edb3e32f1bfce18.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/Analysis/TargetTransformInfo.htrunk/include/llvm/Analysis/TargetTransformInfo.h
The file was modified/llvm/trunk/lib/Analysis/TargetTransformInfo.cpptrunk/lib/Analysis/TargetTransformInfo.cpp
The file was modified/llvm/trunk/lib/CodeGen/HardwareLoops.cpptrunk/lib/CodeGen/HardwareLoops.cpp
Revision 365519 by steven_wu:
Add lit.local.cfg to llvm-objdump tests

Add configuration file to llvm-objdump tests to treat files with .yaml
extension as tests.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/tools/llvm-objdump/X86/macho-build-version.yamltrunk/test/tools/llvm-objdump/X86/macho-build-version.yaml
The file was added/llvm/trunk/test/tools/llvm-objdump/lit.local.cfgtrunk/test/tools/llvm-objdump/lit.local.cfg
Revision 365517 by nico:
Remove a comment that has been obsolete since r327679
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/tools/llvm-pdbutil/injected-sources.testtrunk/test/tools/llvm-pdbutil/injected-sources.test
Revision 365516 by hliao:
[unittest] Add bogus register info.

Reviewers: dstenb

Subscribers: llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D64421
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/unittests/CodeGen/MachineInstrTest.cpptrunk/unittests/CodeGen/MachineInstrTest.cpp
Revision 365515 by nico:
Rename llvm/test/tools/llvm-pdbdump to llvm/test/tools/llvm-pdbutil

llvm-pdbdump was renamed to llvm-pdbutil long ago. This updates the test
to be where you'd expect them to be.
Change TypePath in RepositoryPath in Workspace
The file was removed/llvm/trunk/test/tools/llvm-pdbdumptrunk/test/tools/llvm-pdbdump
The file was added/llvm/trunk/test/tools/llvm-pdbutiltrunk/test/tools/llvm-pdbutil
The file was added/llvm/trunk/test/tools/llvm-pdbutil/Inputstrunk/test/tools/llvm-pdbutil/Inputs
The file was added/llvm/trunk/test/tools/llvm-pdbutil/Inputs/ClassLayoutTest.cpptrunk/test/tools/llvm-pdbutil/Inputs/ClassLayoutTest.cpp
The file was added/llvm/trunk/test/tools/llvm-pdbutil/Inputs/ClassLayoutTest.pdbtrunk/test/tools/llvm-pdbutil/Inputs/ClassLayoutTest.pdb
The file was added/llvm/trunk/test/tools/llvm-pdbutil/Inputs/ComplexPaddingTest.cpptrunk/test/tools/llvm-pdbutil/Inputs/ComplexPaddingTest.cpp
The file was added/llvm/trunk/test/tools/llvm-pdbutil/Inputs/ComplexPaddingTest.pdbtrunk/test/tools/llvm-pdbutil/Inputs/ComplexPaddingTest.pdb
The file was added/llvm/trunk/test/tools/llvm-pdbutil/Inputs/FPOTest.pdbtrunk/test/tools/llvm-pdbutil/Inputs/FPOTest.pdb
The file was added/llvm/trunk/test/tools/llvm-pdbutil/Inputs/FilterTest.cpptrunk/test/tools/llvm-pdbutil/Inputs/FilterTest.cpp
The file was added/llvm/trunk/test/tools/llvm-pdbutil/Inputs/FilterTest.pdbtrunk/test/tools/llvm-pdbutil/Inputs/FilterTest.pdb
The file was added/llvm/trunk/test/tools/llvm-pdbutil/Inputs/InjectedSource.pdbtrunk/test/tools/llvm-pdbutil/Inputs/InjectedSource.pdb
The file was added/llvm/trunk/test/tools/llvm-pdbutil/Inputs/LoadAddressTest.cpptrunk/test/tools/llvm-pdbutil/Inputs/LoadAddressTest.cpp
The file was added/llvm/trunk/test/tools/llvm-pdbutil/Inputs/LoadAddressTest.pdbtrunk/test/tools/llvm-pdbutil/Inputs/LoadAddressTest.pdb
The file was added/llvm/trunk/test/tools/llvm-pdbutil/Inputs/PrettyFuncDumperTest.cpptrunk/test/tools/llvm-pdbutil/Inputs/PrettyFuncDumperTest.cpp
The file was added/llvm/trunk/test/tools/llvm-pdbutil/Inputs/PrettyFuncDumperTest.pdbtrunk/test/tools/llvm-pdbutil/Inputs/PrettyFuncDumperTest.pdb
The file was added/llvm/trunk/test/tools/llvm-pdbutil/Inputs/SimplePaddingTest.cpptrunk/test/tools/llvm-pdbutil/Inputs/SimplePaddingTest.cpp
The file was added/llvm/trunk/test/tools/llvm-pdbutil/Inputs/SimplePaddingTest.pdbtrunk/test/tools/llvm-pdbutil/Inputs/SimplePaddingTest.pdb
The file was added/llvm/trunk/test/tools/llvm-pdbutil/Inputs/Stripped.pdbtrunk/test/tools/llvm-pdbutil/Inputs/Stripped.pdb
The file was added/llvm/trunk/test/tools/llvm-pdbutil/Inputs/TypeQualifiersTest.cpptrunk/test/tools/llvm-pdbutil/Inputs/TypeQualifiersTest.cpp
The file was added/llvm/trunk/test/tools/llvm-pdbutil/Inputs/TypeQualifiersTest.pdbtrunk/test/tools/llvm-pdbutil/Inputs/TypeQualifiersTest.pdb
The file was added/llvm/trunk/test/tools/llvm-pdbutil/Inputs/TypeServerTest.cpptrunk/test/tools/llvm-pdbutil/Inputs/TypeServerTest.cpp
The file was added/llvm/trunk/test/tools/llvm-pdbutil/Inputs/TypeServerTest.pdbtrunk/test/tools/llvm-pdbutil/Inputs/TypeServerTest.pdb
The file was added/llvm/trunk/test/tools/llvm-pdbutil/Inputs/UsingNamespaceTest.cpptrunk/test/tools/llvm-pdbutil/Inputs/UsingNamespaceTest.cpp
The file was added/llvm/trunk/test/tools/llvm-pdbutil/Inputs/UsingNamespaceTest.pdbtrunk/test/tools/llvm-pdbutil/Inputs/UsingNamespaceTest.pdb
The file was added/llvm/trunk/test/tools/llvm-pdbutil/Inputs/tpi.bintrunk/test/tools/llvm-pdbutil/Inputs/tpi.bin
The file was added/llvm/trunk/test/tools/llvm-pdbutil/checksum-string.testtrunk/test/tools/llvm-pdbutil/checksum-string.test
The file was added/llvm/trunk/test/tools/llvm-pdbutil/class-layout.testtrunk/test/tools/llvm-pdbutil/class-layout.test
The file was added/llvm/trunk/test/tools/llvm-pdbutil/complex-padding-graphical.testtrunk/test/tools/llvm-pdbutil/complex-padding-graphical.test
The file was added/llvm/trunk/test/tools/llvm-pdbutil/enum-layout.testtrunk/test/tools/llvm-pdbutil/enum-layout.test
The file was added/llvm/trunk/test/tools/llvm-pdbutil/explain-dbi-stream.testtrunk/test/tools/llvm-pdbutil/explain-dbi-stream.test
The file was added/llvm/trunk/test/tools/llvm-pdbutil/explain-pdb-stream.testtrunk/test/tools/llvm-pdbutil/explain-pdb-stream.test
The file was added/llvm/trunk/test/tools/llvm-pdbutil/explain.testtrunk/test/tools/llvm-pdbutil/explain.test
The file was added/llvm/trunk/test/tools/llvm-pdbutil/export-stream.testtrunk/test/tools/llvm-pdbutil/export-stream.test
The file was added/llvm/trunk/test/tools/llvm-pdbutil/fpo-data.testtrunk/test/tools/llvm-pdbutil/fpo-data.test
The file was added/llvm/trunk/test/tools/llvm-pdbutil/injected-sources.testtrunk/test/tools/llvm-pdbutil/injected-sources.test
The file was added/llvm/trunk/test/tools/llvm-pdbutil/lit.local.cfgtrunk/test/tools/llvm-pdbutil/lit.local.cfg
The file was added/llvm/trunk/test/tools/llvm-pdbutil/load-address.testtrunk/test/tools/llvm-pdbutil/load-address.test
The file was added/llvm/trunk/test/tools/llvm-pdbutil/partial-type-stream.testtrunk/test/tools/llvm-pdbutil/partial-type-stream.test
The file was added/llvm/trunk/test/tools/llvm-pdbutil/pretty-func-dumper.testtrunk/test/tools/llvm-pdbutil/pretty-func-dumper.test
The file was added/llvm/trunk/test/tools/llvm-pdbutil/regex-filter.testtrunk/test/tools/llvm-pdbutil/regex-filter.test
The file was added/llvm/trunk/test/tools/llvm-pdbutil/simple-padding-graphical.testtrunk/test/tools/llvm-pdbutil/simple-padding-graphical.test
The file was added/llvm/trunk/test/tools/llvm-pdbutil/stripped.testtrunk/test/tools/llvm-pdbutil/stripped.test
The file was added/llvm/trunk/test/tools/llvm-pdbutil/symbol-filters.testtrunk/test/tools/llvm-pdbutil/symbol-filters.test
The file was added/llvm/trunk/test/tools/llvm-pdbutil/type-qualifiers.testtrunk/test/tools/llvm-pdbutil/type-qualifiers.test
The file was added/llvm/trunk/test/tools/llvm-pdbutil/type-server-no-dbi.testtrunk/test/tools/llvm-pdbutil/type-server-no-dbi.test
The file was added/llvm/trunk/test/tools/llvm-pdbutil/usingnamespace.testtrunk/test/tools/llvm-pdbutil/usingnamespace.test
Revision 365514 by nico:
Make pdbdump-objfilename test work again

- The test had extension .yaml, which lit doesn't execute in this
  directory. Rename to .test to make it run, and move the yaml bits
  into a dedicated file, like with all other tests in this dir.

- llvm-pdbdump got renamed to llvm-pdbutil long ago, update test.

- -dbi-module-info got renamed in r305032, update test for this too.
Change TypePath in RepositoryPath in Workspace
The file was added/llvm/trunk/test/DebugInfo/PDB/Inputs/objfilename.yamltrunk/test/DebugInfo/PDB/Inputs/objfilename.yaml
The file was added/llvm/trunk/test/DebugInfo/PDB/pdbdump-objfilename.testtrunk/test/DebugInfo/PDB/pdbdump-objfilename.test
The file was removed/llvm/trunk/test/DebugInfo/PDB/pdbdump-objfilename.yamltrunk/test/DebugInfo/PDB/pdbdump-objfilename.yaml

Summary

  1. [clang] DirectoryWatcher Asynchronously monitors specified directory for changes and passes notifications to provided callback. Dependency for index-while-building. Differential Revision: https://reviews.llvm.org/D58418
  2. XFAIL clang/test/Headers/max_align.c on i686
  3. Use the Itanium C++ ABI for the pipe_builtin.cl test Certain OpenCL constructs cannot yet be mangled in the MS C++ ABI. Add a FIXME for it if anyone cares to implement it.
  4. De-templatize non-dependent VS macro logic, NFC These macro definitions don't depend on the template parameter, so they don't need to be part of the template. Move them to a .cpp file.
  5. [CXX] Exercise all paths through these tests. Differential Revision: https://reviews.llvm.org/D63894
  6. hwasan: Improve precision of checks using short granule tags. A short granule is a granule of size between 1 and `TG-1` bytes. The size of a short granule is stored at the location in shadow memory where the granule's tag is normally stored, while the granule's actual tag is stored in the last byte of the granule. This means that in order to verify that a pointer tag matches a memory tag, HWASAN must check for two possibilities: * the pointer tag is equal to the memory tag in shadow memory, or * the shadow memory tag is actually a short granule size, the value being loaded is in bounds of the granule and the pointer tag is equal to the last byte of the granule. Pointer tags between 1 to `TG-1` are possible and are as likely as any other tag. This means that these tags in memory have two interpretations: the full tag interpretation (where the pointer tag is between 1 and `TG-1` and the last byte of the granule is ordinary data) and the short tag interpretation (where the pointer tag is stored in the granule). When HWASAN detects an error near a memory tag between 1 and `TG-1`, it will show both the memory tag and the last byte of the granule. Currently, it is up to the user to disambiguate the two possibilities. Because this functionality obsoletes the right aligned heap feature of the HWASAN memory allocator (and because we can no longer easily test it), the feature is removed. Also update the documentation to cover both short granule tags and outlined checks. Differential Revision: https://reviews.llvm.org/D63908
  7. [OpenMP] Simplify getFloatTypeSemantics When the float point representations are the same on the host and on the target device, (`&Target->getLongDoubleFormat() == &AuxTarget->getLongDoubleFormat()`), we can just use `AuxTarget->getLongDoubleFormat()`. Reviewed By: ABataev Differential Revision: https://reviews.llvm.org/D64423
  8. [AMDGPU] gfx908 clang target Differential Revision: https://reviews.llvm.org/D64430
  9. [ObjC] Add a warning for implicit conversions of a constant non-boolean value to BOOL rdar://51954400 Differential revision: https://reviews.llvm.org/D63912
Revision 365574 by Jan Korous:
[clang] DirectoryWatcher

Asynchronously monitors specified directory for changes and passes notifications to provided callback.

Dependency for index-while-building.

Differential Revision: https://reviews.llvm.org/D58418
Change TypePath in RepositoryPath in Workspace
The file was added/cfe/trunk/include/clang/DirectoryWatchertrunk/include/clang/DirectoryWatcher
The file was added/cfe/trunk/include/clang/DirectoryWatcher/DirectoryWatcher.htrunk/include/clang/DirectoryWatcher/DirectoryWatcher.h
The file was modified/cfe/trunk/lib/CMakeLists.txttrunk/lib/CMakeLists.txt
The file was added/cfe/trunk/lib/DirectoryWatchertrunk/lib/DirectoryWatcher
The file was added/cfe/trunk/lib/DirectoryWatcher/CMakeLists.txttrunk/lib/DirectoryWatcher/CMakeLists.txt
The file was added/cfe/trunk/lib/DirectoryWatcher/DirectoryScanner.cpptrunk/lib/DirectoryWatcher/DirectoryScanner.cpp
The file was added/cfe/trunk/lib/DirectoryWatcher/DirectoryScanner.htrunk/lib/DirectoryWatcher/DirectoryScanner.h
The file was added/cfe/trunk/lib/DirectoryWatcher/linuxtrunk/lib/DirectoryWatcher/linux
The file was added/cfe/trunk/lib/DirectoryWatcher/linux/DirectoryWatcher-linux.cpptrunk/lib/DirectoryWatcher/linux/DirectoryWatcher-linux.cpp
The file was added/cfe/trunk/lib/DirectoryWatcher/mactrunk/lib/DirectoryWatcher/mac
The file was added/cfe/trunk/lib/DirectoryWatcher/mac/DirectoryWatcher-mac.cpptrunk/lib/DirectoryWatcher/mac/DirectoryWatcher-mac.cpp
The file was modified/cfe/trunk/unittests/CMakeLists.txttrunk/unittests/CMakeLists.txt
The file was added/cfe/trunk/unittests/DirectoryWatchertrunk/unittests/DirectoryWatcher
The file was added/cfe/trunk/unittests/DirectoryWatcher/CMakeLists.txttrunk/unittests/DirectoryWatcher/CMakeLists.txt
The file was added/cfe/trunk/unittests/DirectoryWatcher/DirectoryWatcherTest.cpptrunk/unittests/DirectoryWatcher/DirectoryWatcherTest.cpp
Revision 365558 by andusy:
XFAIL clang/test/Headers/max_align.c on i686
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/test/Headers/max_align.ctrunk/test/Headers/max_align.c
Revision 365557 by rnk:
Use the Itanium C++ ABI for the pipe_builtin.cl test

Certain OpenCL constructs cannot yet be mangled in the MS C++ ABI.
Add a FIXME for it if anyone cares to implement it.
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/test/CodeGenOpenCL/pipe_builtin.cltrunk/test/CodeGenOpenCL/pipe_builtin.cl
Revision 365556 by rnk:
De-templatize non-dependent VS macro logic, NFC

These macro definitions don't depend on the template parameter, so they
don't need to be part of the template. Move them to a .cpp file.
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/Basic/Targets.cpptrunk/lib/Basic/Targets.cpp
The file was modified/cfe/trunk/lib/Basic/Targets.htrunk/lib/Basic/Targets.h
The file was modified/cfe/trunk/lib/Basic/Targets/AArch64.cpptrunk/lib/Basic/Targets/AArch64.cpp
The file was modified/cfe/trunk/lib/Basic/Targets/AArch64.htrunk/lib/Basic/Targets/AArch64.h
The file was modified/cfe/trunk/lib/Basic/Targets/ARM.cpptrunk/lib/Basic/Targets/ARM.cpp
The file was modified/cfe/trunk/lib/Basic/Targets/OSTargets.cpptrunk/lib/Basic/Targets/OSTargets.cpp
The file was modified/cfe/trunk/lib/Basic/Targets/OSTargets.htrunk/lib/Basic/Targets/OSTargets.h
The file was modified/cfe/trunk/lib/Basic/Targets/X86.htrunk/lib/Basic/Targets/X86.h
Revision 365555 by probinson:
[CXX] Exercise all paths through these tests.

Differential Revision: https://reviews.llvm.org/D63894
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/test/CXX/dcl.dcl/basic.namespace/namespace.udecl/p4.cpptrunk/test/CXX/dcl.dcl/basic.namespace/namespace.udecl/p4.cpp
The file was modified/cfe/trunk/test/SemaCXX/class.cpptrunk/test/SemaCXX/class.cpp
The file was modified/cfe/trunk/test/SemaCXX/linkage2.cpptrunk/test/SemaCXX/linkage2.cpp
Revision 365551 by pcc:
hwasan: Improve precision of checks using short granule tags.

A short granule is a granule of size between 1 and `TG-1` bytes. The size
of a short granule is stored at the location in shadow memory where the
granule's tag is normally stored, while the granule's actual tag is stored
in the last byte of the granule. This means that in order to verify that a
pointer tag matches a memory tag, HWASAN must check for two possibilities:

* the pointer tag is equal to the memory tag in shadow memory, or
* the shadow memory tag is actually a short granule size, the value being loaded
  is in bounds of the granule and the pointer tag is equal to the last byte of
  the granule.

Pointer tags between 1 to `TG-1` are possible and are as likely as any other
tag. This means that these tags in memory have two interpretations: the full
tag interpretation (where the pointer tag is between 1 and `TG-1` and the
last byte of the granule is ordinary data) and the short tag interpretation
(where the pointer tag is stored in the granule).

When HWASAN detects an error near a memory tag between 1 and `TG-1`, it
will show both the memory tag and the last byte of the granule. Currently,
it is up to the user to disambiguate the two possibilities.

Because this functionality obsoletes the right aligned heap feature of
the HWASAN memory allocator (and because we can no longer easily test
it), the feature is removed.

Also update the documentation to cover both short granule tags and
outlined checks.

Differential Revision: https://reviews.llvm.org/D63908
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/docs/HardwareAssistedAddressSanitizerDesign.rsttrunk/docs/HardwareAssistedAddressSanitizerDesign.rst
The file was modified/compiler-rt/trunk/lib/hwasan/hwasan_allocator.cppN/A
The file was modified/compiler-rt/trunk/lib/hwasan/hwasan_checks.hN/A
The file was modified/compiler-rt/trunk/lib/hwasan/hwasan_flags.incN/A
The file was modified/compiler-rt/trunk/lib/hwasan/hwasan_report.cppN/A
The file was modified/compiler-rt/trunk/lib/hwasan/hwasan_report.hN/A
The file was modified/compiler-rt/trunk/test/hwasan/TestCases/heap-buffer-overflow.cN/A
The file was removed/compiler-rt/trunk/test/hwasan/TestCases/random-align-right.cN/A
The file was modified/compiler-rt/trunk/test/hwasan/TestCases/stack-oob.cN/A
The file was modified/compiler-rt/trunk/test/hwasan/TestCases/tail-magic.cN/A
The file was modified/llvm/trunk/lib/Target/AArch64/AArch64AsmPrinter.cppN/A
The file was modified/llvm/trunk/lib/Transforms/Instrumentation/HWAddressSanitizer.cppN/A
The file was modified/llvm/trunk/test/CodeGen/AArch64/hwasan-check-memaccess.llN/A
The file was modified/llvm/trunk/test/Instrumentation/HWAddressSanitizer/alloca-with-calls.llN/A
The file was modified/llvm/trunk/test/Instrumentation/HWAddressSanitizer/alloca.llN/A
The file was modified/llvm/trunk/test/Instrumentation/HWAddressSanitizer/basic.llN/A
The file was modified/llvm/trunk/test/Instrumentation/HWAddressSanitizer/kernel-alloca.llN/A
Revision 365545 by maskray:
[OpenMP] Simplify getFloatTypeSemantics

When the float point representations are the same on the host and on the target device,
(`&Target->getLongDoubleFormat() == &AuxTarget->getLongDoubleFormat()`),
we can just use `AuxTarget->getLongDoubleFormat()`.

Reviewed By: ABataev

Differential Revision: https://reviews.llvm.org/D64423
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/AST/ASTContext.cpptrunk/lib/AST/ASTContext.cpp
Revision 365528 by rampitec:
[AMDGPU] gfx908 clang target

Differential Revision: https://reviews.llvm.org/D64430
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/include/clang/Basic/Cuda.htrunk/include/clang/Basic/Cuda.h
The file was modified/cfe/trunk/lib/Basic/Cuda.cpptrunk/lib/Basic/Cuda.cpp
The file was modified/cfe/trunk/lib/Basic/Targets/AMDGPU.cpptrunk/lib/Basic/Targets/AMDGPU.cpp
The file was modified/cfe/trunk/lib/Basic/Targets/NVPTX.cpptrunk/lib/Basic/Targets/NVPTX.cpp
The file was modified/cfe/trunk/lib/CodeGen/CGOpenMPRuntimeNVPTX.cpptrunk/lib/CodeGen/CGOpenMPRuntimeNVPTX.cpp
The file was modified/cfe/trunk/test/CodeGenOpenCL/amdgpu-features.cltrunk/test/CodeGenOpenCL/amdgpu-features.cl
The file was modified/cfe/trunk/test/Driver/amdgpu-macros.cltrunk/test/Driver/amdgpu-macros.cl
The file was modified/cfe/trunk/test/Driver/amdgpu-mcpu.cltrunk/test/Driver/amdgpu-mcpu.cl
The file was modified/cfe/trunk/test/Driver/cuda-bad-arch.cutrunk/test/Driver/cuda-bad-arch.cu
Revision 365518 by epilk:
[ObjC] Add a warning for implicit conversions of a constant non-boolean value to BOOL

rdar://51954400

Differential revision: https://reviews.llvm.org/D63912
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/include/clang/Basic/DiagnosticGroups.tdtrunk/include/clang/Basic/DiagnosticGroups.td
The file was modified/cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.tdtrunk/include/clang/Basic/DiagnosticSemaKinds.td
The file was modified/cfe/trunk/lib/Sema/SemaChecking.cpptrunk/lib/Sema/SemaChecking.cpp
The file was added/cfe/trunk/test/Sema/objc-bool-constant-conversion-fixit.mtrunk/test/Sema/objc-bool-constant-conversion-fixit.m
The file was added/cfe/trunk/test/Sema/objc-bool-constant-conversion.mtrunk/test/Sema/objc-bool-constant-conversion.m

Summary

  1. [clangd] Rewrite of logic to rebuild the background index serving structures. Summary: Previously it was rebuilding every 5s by default, which was much too frequent in the long run - the goal was to provide an early build. There were also some bugs. There were also some bugs, and a dedicated thread was used in production but not tested. - rebuilds are triggered by #TUs built, rather than time. This should scale more sensibly to fast vs slow machines. - there are two separate indexed-TU thresholds to trigger index build: 5 TUs for the first build, 100 for subsequent rebuilds. - rebuild is always done on the regular indexing threads, and is affected by blockUntilIdle. This means unit/lit tests run the production configuration. - fixed a bug where we'd rebuild after attempting to load shards, even if there were no shards. - the BackgroundIndexTests don't really test the subtleties of the rebuild policy (for determinism, we call blockUntilIdle, so rebuild-on-idle is enough to pass the tests). Instead, we expose the rebuilder as a separate class and have fine-grained tests for it. Reviewers: kadircet Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, jfb, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D64291
  2. [clangd] Show documentation in hover, and fetch docs from index if needed. Summary: I assume showing docs is going to be part of structured hover rendering, but it's unclear whether that's going to make clangd 9 so this is low-hanging fruit. (Also fixes a bug uncovered in FormattedString's plain text output: need blank lines when text follows codeblocks) Reviewers: kadircet Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D64296
Revision 365531 by sammccall:
[clangd] Rewrite of logic to rebuild the background index serving structures.

Summary:
Previously it was rebuilding every 5s by default, which was much too frequent
in the long run - the goal was to provide an early build. There were also some
bugs. There were also some bugs, and a dedicated thread was used in production
but not tested.

- rebuilds are triggered by #TUs built, rather than time. This should scale
   more sensibly to fast vs slow machines.
- there are two separate indexed-TU thresholds to trigger index build: 5 TUs
   for the first build, 100 for subsequent rebuilds.
- rebuild is always done on the regular indexing threads, and is affected by
   blockUntilIdle. This means unit/lit tests run the production configuration.
- fixed a bug where we'd rebuild after attempting to load shards, even if there
   were no shards.
- the BackgroundIndexTests don't really test the subtleties of the rebuild
   policy (for determinism, we call blockUntilIdle, so rebuild-on-idle is enough
   to pass the tests). Instead, we expose the rebuilder as a separate class and
   have fine-grained tests for it.

Reviewers: kadircet

Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, jfb, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D64291
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/ClangdServer.cpptrunk/clangd/ClangdServer.cpp
The file was modified/clang-tools-extra/trunk/clangd/ClangdServer.htrunk/clangd/ClangdServer.h
The file was modified/clang-tools-extra/trunk/clangd/index/Background.cpptrunk/clangd/index/Background.cpp
The file was modified/clang-tools-extra/trunk/clangd/index/Background.htrunk/clangd/index/Background.h
The file was added/clang-tools-extra/trunk/clangd/index/BackgroundRebuild.cpptrunk/clangd/index/BackgroundRebuild.cpp
The file was added/clang-tools-extra/trunk/clangd/index/BackgroundRebuild.htrunk/clangd/index/BackgroundRebuild.h
The file was modified/clang-tools-extra/trunk/clangd/test/background-index.testtrunk/clangd/test/background-index.test
The file was modified/clang-tools-extra/trunk/clangd/tool/ClangdMain.cpptrunk/clangd/tool/ClangdMain.cpp
The file was modified/clang-tools-extra/trunk/clangd/unittests/BackgroundIndexTests.cpptrunk/clangd/unittests/BackgroundIndexTests.cpp
Revision 365522 by sammccall:
[clangd] Show documentation in hover, and fetch docs from index if needed.

Summary:
I assume showing docs is going to be part of structured hover rendering, but
it's unclear whether that's going to make clangd 9 so this is low-hanging fruit.

(Also fixes a bug uncovered in FormattedString's plain text output: need blank
lines when text follows codeblocks)

Reviewers: kadircet

Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D64296
Change TypePath in RepositoryPath in Workspace
The file was modified/clang-tools-extra/trunk/clangd/ClangdServer.cpptrunk/clangd/ClangdServer.cpp
The file was modified/clang-tools-extra/trunk/clangd/FormattedString.cpptrunk/clangd/FormattedString.cpp
The file was modified/clang-tools-extra/trunk/clangd/XRefs.cpptrunk/clangd/XRefs.cpp
The file was modified/clang-tools-extra/trunk/clangd/XRefs.htrunk/clangd/XRefs.h
The file was modified/clang-tools-extra/trunk/clangd/unittests/FormattedStringTests.cpptrunk/clangd/unittests/FormattedStringTests.cpp
The file was modified/clang-tools-extra/trunk/clangd/unittests/XRefsTests.cpptrunk/clangd/unittests/XRefsTests.cpp

Summary

  1. Reland "[TSan] Improve handling of stack pointer mangling in {set,long}jmp, pt.8" Fix compilation errors related to `SANITIZER_GO` `#ifdef`s. Refine longjmp key management. For Linux, re-implement key retrieval in C (instead of assembly). Removal of `InitializeGuardPtr` and a final round of cleanups will be done in the next commit. Reviewed By: dvyukov Differential Revision: https://reviews.llvm.org/D64092 llvm-svn: 365513
  2. [TSan] Refine longjmp key management on Darwin NFC.
  3. hwasan: Improve precision of checks using short granule tags. A short granule is a granule of size between 1 and `TG-1` bytes. The size of a short granule is stored at the location in shadow memory where the granule's tag is normally stored, while the granule's actual tag is stored in the last byte of the granule. This means that in order to verify that a pointer tag matches a memory tag, HWASAN must check for two possibilities: * the pointer tag is equal to the memory tag in shadow memory, or * the shadow memory tag is actually a short granule size, the value being loaded is in bounds of the granule and the pointer tag is equal to the last byte of the granule. Pointer tags between 1 to `TG-1` are possible and are as likely as any other tag. This means that these tags in memory have two interpretations: the full tag interpretation (where the pointer tag is between 1 and `TG-1` and the last byte of the granule is ordinary data) and the short tag interpretation (where the pointer tag is stored in the granule). When HWASAN detects an error near a memory tag between 1 and `TG-1`, it will show both the memory tag and the last byte of the granule. Currently, it is up to the user to disambiguate the two possibilities. Because this functionality obsoletes the right aligned heap feature of the HWASAN memory allocator (and because we can no longer easily test it), the feature is removed. Also update the documentation to cover both short granule tags and outlined checks. Differential Revision: https://reviews.llvm.org/D63908
  4. [libFuzzer] Include FuzzedDataProvider.h in the test without "utils" subdir. Summary: This way the test would better match the intended usage of the header, plus it makes some additional testing (e.g. in CI) a bit easier to set up. Reviewers: morehouse Reviewed By: morehouse Subscribers: mgorny, delcypher, #sanitizers, llvm-commits Tags: #llvm, #sanitizers Differential Revision: https://reviews.llvm.org/D64440
  5. Revert "[TSan] Improve handling of stack pointer mangling in {set,long}jmp, pt.8" This reverts commit 521f77e6351fd921f5a81027c7c72addca378989.
  6. [TSan] Improve handling of stack pointer mangling in {set,long}jmp, pt.8 Refine longjmp key management. For Linux, re-implement key retrieval in C (instead of assembly). Removal of `InitializeGuardPtr` and a final round of cleanups will be done in the next commit. Reviewed By: dvyukov Differential Revision: https://reviews.llvm.org/D64092
Revision 365560 by yln:
Reland "[TSan] Improve handling of stack pointer mangling in {set,long}jmp, pt.8"

Fix compilation errors related to `SANITIZER_GO` `#ifdef`s.

Refine longjmp key management.  For Linux, re-implement key retrieval in
C (instead of assembly).  Removal of `InitializeGuardPtr` and a final
round of cleanups will be done in the next commit.

Reviewed By: dvyukov

Differential Revision: https://reviews.llvm.org/D64092

llvm-svn: 365513
Change TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/lib/tsan/rtl/tsan_platform_linux.cctrunk/lib/tsan/rtl/tsan_platform_linux.cc
Revision 365554 by yln:
[TSan] Refine longjmp key management on Darwin

NFC.
Change TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/lib/tsan/rtl/tsan_platform_mac.cctrunk/lib/tsan/rtl/tsan_platform_mac.cc
Revision 365551 by pcc:
hwasan: Improve precision of checks using short granule tags.

A short granule is a granule of size between 1 and `TG-1` bytes. The size
of a short granule is stored at the location in shadow memory where the
granule's tag is normally stored, while the granule's actual tag is stored
in the last byte of the granule. This means that in order to verify that a
pointer tag matches a memory tag, HWASAN must check for two possibilities:

* the pointer tag is equal to the memory tag in shadow memory, or
* the shadow memory tag is actually a short granule size, the value being loaded
  is in bounds of the granule and the pointer tag is equal to the last byte of
  the granule.

Pointer tags between 1 to `TG-1` are possible and are as likely as any other
tag. This means that these tags in memory have two interpretations: the full
tag interpretation (where the pointer tag is between 1 and `TG-1` and the
last byte of the granule is ordinary data) and the short tag interpretation
(where the pointer tag is stored in the granule).

When HWASAN detects an error near a memory tag between 1 and `TG-1`, it
will show both the memory tag and the last byte of the granule. Currently,
it is up to the user to disambiguate the two possibilities.

Because this functionality obsoletes the right aligned heap feature of
the HWASAN memory allocator (and because we can no longer easily test
it), the feature is removed.

Also update the documentation to cover both short granule tags and
outlined checks.

Differential Revision: https://reviews.llvm.org/D63908
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/docs/HardwareAssistedAddressSanitizerDesign.rstN/A
The file was modified/compiler-rt/trunk/lib/hwasan/hwasan_allocator.cpptrunk/lib/hwasan/hwasan_allocator.cpp
The file was modified/compiler-rt/trunk/lib/hwasan/hwasan_checks.htrunk/lib/hwasan/hwasan_checks.h
The file was modified/compiler-rt/trunk/lib/hwasan/hwasan_flags.inctrunk/lib/hwasan/hwasan_flags.inc
The file was modified/compiler-rt/trunk/lib/hwasan/hwasan_report.cpptrunk/lib/hwasan/hwasan_report.cpp
The file was modified/compiler-rt/trunk/lib/hwasan/hwasan_report.htrunk/lib/hwasan/hwasan_report.h
The file was modified/compiler-rt/trunk/test/hwasan/TestCases/heap-buffer-overflow.ctrunk/test/hwasan/TestCases/heap-buffer-overflow.c
The file was removed/compiler-rt/trunk/test/hwasan/TestCases/random-align-right.ctrunk/test/hwasan/TestCases/random-align-right.c
The file was modified/compiler-rt/trunk/test/hwasan/TestCases/stack-oob.ctrunk/test/hwasan/TestCases/stack-oob.c
The file was modified/compiler-rt/trunk/test/hwasan/TestCases/tail-magic.ctrunk/test/hwasan/TestCases/tail-magic.c
The file was modified/llvm/trunk/lib/Target/AArch64/AArch64AsmPrinter.cppN/A
The file was modified/llvm/trunk/lib/Transforms/Instrumentation/HWAddressSanitizer.cppN/A
The file was modified/llvm/trunk/test/CodeGen/AArch64/hwasan-check-memaccess.llN/A
The file was modified/llvm/trunk/test/Instrumentation/HWAddressSanitizer/alloca-with-calls.llN/A
The file was modified/llvm/trunk/test/Instrumentation/HWAddressSanitizer/alloca.llN/A
The file was modified/llvm/trunk/test/Instrumentation/HWAddressSanitizer/basic.llN/A
The file was modified/llvm/trunk/test/Instrumentation/HWAddressSanitizer/kernel-alloca.llN/A
Revision 365544 by dor1s:
[libFuzzer] Include FuzzedDataProvider.h in the test without "utils" subdir.

Summary:
This way the test would better match the intended usage of the header,
plus it makes some additional testing (e.g. in CI) a bit easier to set up.

Reviewers: morehouse

Reviewed By: morehouse

Subscribers: mgorny, delcypher, #sanitizers, llvm-commits

Tags: #llvm, #sanitizers

Differential Revision: https://reviews.llvm.org/D64440
Change TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/lib/fuzzer/tests/CMakeLists.txttrunk/lib/fuzzer/tests/CMakeLists.txt
The file was modified/compiler-rt/trunk/lib/fuzzer/tests/FuzzedDataProviderUnittest.cpptrunk/lib/fuzzer/tests/FuzzedDataProviderUnittest.cpp
Revision 365534 by yln:
Revert "[TSan] Improve handling of stack pointer mangling in {set,long}jmp, pt.8"

This reverts commit 521f77e6351fd921f5a81027c7c72addca378989.
Change TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/lib/tsan/rtl/tsan_platform_linux.cctrunk/lib/tsan/rtl/tsan_platform_linux.cc
The file was modified/compiler-rt/trunk/lib/tsan/rtl/tsan_platform_mac.cctrunk/lib/tsan/rtl/tsan_platform_mac.cc
Revision 365513 by yln:
[TSan] Improve handling of stack pointer mangling in {set,long}jmp, pt.8

Refine longjmp key management.  For Linux, re-implement key retrieval in
C (instead of assembly).  Removal of `InitializeGuardPtr` and a final
round of cleanups will be done in the next commit.

Reviewed By: dvyukov

Differential Revision: https://reviews.llvm.org/D64092
Change TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/lib/tsan/rtl/tsan_platform_linux.cctrunk/lib/tsan/rtl/tsan_platform_linux.cc
The file was modified/compiler-rt/trunk/lib/tsan/rtl/tsan_platform_mac.cctrunk/lib/tsan/rtl/tsan_platform_mac.cc

Summary

  1. build: use multiple `install` rather than building up a list Rather than building up a list to iterate over later, just create multiple install commands based on the configuration. This makes it easier to see what is getting installed and allows for the install handling to be centralised. NFC
Revision 365562 by Saleem Abdulrasool:
build: use multiple `install` rather than building up a list

Rather than building up a list to iterate over later, just create multiple
install commands based on the configuration. This makes it easier to see what
is getting installed and allows for the install handling to be centralised. NFC
Change TypePath in RepositoryPath in Workspace
The file was modified/libcxx/trunk/src/CMakeLists.txttrunk/src/CMakeLists.txt