FailedChanges

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

Summary

  1. [MC] Drop unneeded std::abs for DW_def_cfa_offset in DarwinX86AsmBackend::generateCompactUnwindEncoding (details)
  2. [Align] Remove operations on MaybeAlign that asserted that it had a defined value. (details)
  3. [TargetPassConfig] Don't add alias analysis at optnone (details)
  4. [Analyzer][WebKit][NFC] Correct documentation to avoid sphinx build error (details)
  5. Added a new IRCanonicalizer pass. (details)
  6. [gn build] Port 14d358537f1 (details)
  7. Revert "[gn build] Port 14d358537f1" (details)
  8. Revert "Added a new IRCanonicalizer pass." (details)
  9. [libc++] Mark __cpp_lib_hardware_interference_size as unimplemented. This fxes bug PR41423. (details)
  10. Add a way to set traversal mode in clang-query (details)
  11. [yaml2obj] - Add a technical prefix for each unnamed chunk. (details)
  12. [yaml2obj] - Move "repeated section/fill name" check earlier. (details)
  13. TableGen: Don't reconstruct CodeGenDAGTarget (details)
  14. [ELF] Parse SHT_GNU_verneed and respect versioned undefined symbols in shared objects (details)
  15. Silence warning from unit test (details)
  16. AMDGPU: Define mode register (details)
  17. AMDGPU: Implement isConstantPhysReg (details)
  18. HIP: Try to deal with more llvm package layouts (details)
  19. AMDGPU: Refine rcp/rsq intrinsic folding for modern FP rules (details)
  20. SimplifyCFG: Clean up optforfuzzing implementation (details)
  21. TargetLowering.h - remove unnecessary TargetMachine.h include. NFC (details)
Commit 0f6bd9cda6c002050b610b886a43c282e4ca2807 by maskray
[MC] Drop unneeded std::abs for DW_def_cfa_offset in DarwinX86AsmBackend::generateCompactUnwindEncoding

This clean-up is available after double negation bugs are fixed.
The file was modifiedllvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp
Commit 7392820f989048000562b8fa7dade023dddacb37 by craig.topper
[Align] Remove operations on MaybeAlign that asserted that it had a defined value.

If the caller needs to reponsible for making sure the MaybeAlign
has a value, then we should just make the caller convert it to an Align
with operator*.

I explicitly deleted the relational comparison operators that
were being inherited from Optional. It's unclear what the meaning
of two MaybeAligns were one is defined and the other isn't
should be. So make the caller reponsible for defining the behavior.

I left the ==/!= operators from Optional. But now that exposed a
weird quirk that ==/!= between Align and MaybeAlign required the
MaybeAlign to be defined. But now we use the operator== from
Optional that takes an Optional and the Value.

Differential Revision: https://reviews.llvm.org/D80455
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp
The file was modifiedllvm/lib/Transforms/Scalar/MemCpyOptimizer.cpp
The file was modifiedllvm/lib/IR/Globals.cpp
The file was modifiedllvm/lib/Target/PowerPC/PPCTargetTransformInfo.cpp
The file was modifiedllvm/lib/Target/ARM/ARMTargetTransformInfo.cpp
The file was modifiedllvm/unittests/Support/AlignmentTest.cpp
The file was modifiedllvm/lib/Transforms/IPO/AttributorAttributes.cpp
The file was modifiedllvm/include/llvm/Support/Alignment.h
The file was modifiedllvm/lib/CodeGen/GlobalISel/GISelKnownBits.cpp
The file was modifiedllvm/lib/LTO/LTO.cpp
The file was modifiedllvm/include/llvm/IR/DataLayout.h
Commit 0c6bba71e3926edf19251425fa6435250f148ece by nikita.ppv
[TargetPassConfig] Don't add alias analysis at optnone

When performing codegen at optnone, don't add alias analysis to
the pipeline. We don't need it, but it causes an unnecessary
dominator tree calculation.

I've also moved the module verifier call to the top so that a bunch
of disabled-at-optnone passes group more nicely.

Differential Revision: https://reviews.llvm.org/D80378
The file was modifiedllvm/test/CodeGen/ARM/O3-pipeline.ll
The file was modifiedllvm/lib/CodeGen/TargetPassConfig.cpp
The file was modifiedllvm/test/CodeGen/AArch64/O0-pipeline.ll
The file was modifiedllvm/test/CodeGen/X86/O3-pipeline.ll
The file was modifiedllvm/test/CodeGen/X86/O0-pipeline.ll
The file was modifiedllvm/test/CodeGen/AArch64/O3-pipeline.ll
Commit 0591329dd1f1b1691c65e700c2805590a090b7d8 by mydeveloperday
[Analyzer][WebKit][NFC] Correct documentation to avoid sphinx build error

This was introduced with commit 54e91a3c7010
The file was modifiedclang/docs/analyzer/checkers.rst
Commit 14d358537f124a732adad1ec6edf3981dc9baece by michal.paszkowski
Added a new IRCanonicalizer pass.

Summary:
Added a new IRCanonicalizer pass which aims to transform LLVM modules into
a canonical form by reordering and renaming instructions while preserving the
same semantics. The canonicalizer makes it easier to spot semantic differences
when diffing two modules which have undergone different passes.

Presentation: https://www.youtube.com/watch?v=c9WMijSOEUg

Reviewed by: plotfi

Differential Revision: https://reviews.llvm.org/D66029
The file was modifiedllvm/docs/Passes.rst
The file was addedllvm/test/Transforms/IRCanonicalizer/naming-basic-blocks.ll
The file was modifiedllvm/lib/Transforms/Utils/Utils.cpp
The file was addedllvm/test/Transforms/IRCanonicalizer/naming-instructions.ll
The file was modifiedllvm/include/llvm/LinkAllPasses.h
The file was modifiedllvm/include/llvm/InitializePasses.h
The file was addedllvm/test/Transforms/IRCanonicalizer/reordering-instructions.ll
The file was addedllvm/test/Transforms/IRCanonicalizer/naming-arguments.ll
The file was addedllvm/test/Transforms/IRCanonicalizer/reordering-phi-node-values.ll
The file was addedllvm/lib/Transforms/Utils/IRCanonicalizer.cpp
The file was modifiedllvm/lib/Transforms/Utils/CMakeLists.txt
The file was modifiedllvm/include/llvm/Transforms/Utils.h
The file was modifiedllvm/docs/ReleaseNotes.rst
Commit a0c7108b99f834cd7571ae57872116a4ef2682d9 by llvmgnsyncbot
[gn build] Port 14d358537f1
The file was modifiedllvm/utils/gn/secondary/llvm/lib/Transforms/Utils/BUILD.gn
Commit fc12ead8ff514b834a648f8b6af56cf57993158b by michal.paszkowski
Revert "[gn build] Port 14d358537f1"

This reverts commit a0c7108b99f834cd7571ae57872116a4ef2682d9.
The file was modifiedllvm/utils/gn/secondary/llvm/lib/Transforms/Utils/BUILD.gn
Commit 335de55fa3384946f1e62050f2545c0966163236 by michal.paszkowski
Revert "Added a new IRCanonicalizer pass."

This reverts commit 14d358537f124a732adad1ec6edf3981dc9baece.
The file was removedllvm/test/Transforms/IRCanonicalizer/reordering-phi-node-values.ll
The file was removedllvm/test/Transforms/IRCanonicalizer/reordering-instructions.ll
The file was removedllvm/test/Transforms/IRCanonicalizer/naming-arguments.ll
The file was removedllvm/test/Transforms/IRCanonicalizer/naming-instructions.ll
The file was modifiedllvm/include/llvm/LinkAllPasses.h
The file was modifiedllvm/lib/Transforms/Utils/CMakeLists.txt
The file was removedllvm/test/Transforms/IRCanonicalizer/naming-basic-blocks.ll
The file was modifiedllvm/include/llvm/InitializePasses.h
The file was removedllvm/lib/Transforms/Utils/IRCanonicalizer.cpp
The file was modifiedllvm/docs/Passes.rst
The file was modifiedllvm/include/llvm/Transforms/Utils.h
The file was modifiedllvm/lib/Transforms/Utils/Utils.cpp
The file was modifiedllvm/docs/ReleaseNotes.rst
Commit 174322c2737d699e199db4762aaf4217305ec465 by marek
[libc++] Mark __cpp_lib_hardware_interference_size as unimplemented. This fxes bug PR41423.

Summary:
As described in the bug report:
The commit a8b9f59e8caf378d56e8bfcecdb22184cdabf42d "Implement feature test macros using a script" added test features macros for libc++. Among others, it added `__cpp_lib_hardware_interference_size`. However, there is nothing like std::hardware_constructive_interference_size nor std::hardware_destructive_interference_size, that should be in header <new>.

* https://bugs.llvm.org/show_bug.cgi?id=41423

Reviewed By: ldionne, #libc

Differential Revision: https://reviews.llvm.org/D80431
The file was modifiedlibcxx/utils/generate_feature_test_macro_components.py
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/new.version.pass.cpp
The file was modifiedlibcxx/include/version
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/version.version.pass.cpp
The file was modifiedlibcxx/docs/FeatureTestMacroTable.rst
Commit 10f0f98eac5b20796ae804a2df2a9d853d59d3bd by steveire
Add a way to set traversal mode in clang-query

Reviewers: aaron.ballman

Subscribers: cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D73037
The file was modifiedclang-tools-extra/clang-query/QuerySession.h
The file was modifiedclang-tools-extra/unittests/clang-query/QueryParserTest.cpp
The file was modifiedclang-tools-extra/clang-query/QueryParser.cpp
The file was modifiedclang-tools-extra/clang-query/QueryParser.h
The file was modifiedclang-tools-extra/clang-query/Query.cpp
The file was modifiedclang-tools-extra/clang-query/Query.h
Commit 38c5d6f70060046bbbfec7491c7ba54a50fa5d16 by grimar
[yaml2obj] - Add a technical prefix for each unnamed chunk.

This change does not affect the produced binary.

In this patch I assign a technical suffix to each section/fill
(i.e. chunk) name when it is empty. It allows to simplify the code
slightly and improve error messages reported.

In the code we have the section to index mapping, SN2I, which is
globally used. With this change we can use it to map "empty"
names to indexes now, what is helpful.

Differential revision: https://reviews.llvm.org/D79984
The file was modifiedllvm/test/tools/yaml2obj/ELF/section-link.yaml
The file was modifiedllvm/lib/ObjectYAML/ELFEmitter.cpp
The file was modifiedllvm/test/tools/yaml2obj/ELF/custom-null-section.yaml
Commit 304b0ed40392830e6f833c56b38cdc8296f58ce4 by grimar
[yaml2obj] - Move "repeated section/fill name" check earlier.

This allows to simplify the code.
Doing checks early is generally useful.

Differential revision: https://reviews.llvm.org/D79985
The file was modifiedllvm/lib/ObjectYAML/ELFEmitter.cpp
Commit 421a40b32520f5a3764a974df44f89e7d80bc6b4 by arsenm2
TableGen: Don't reconstruct CodeGenDAGTarget

This is quite expensive and it's already available.

Just ReadLegalValueTypes is taking 4 seconds for me in a debug build
for AMDGPU's -gen-instr-info, and this was introducing a second call.
The file was modifiedllvm/utils/TableGen/InstrInfoEmitter.cpp
Commit e32f04cdc95224589f30148599c362ba37bae7b6 by maskray
[ELF] Parse SHT_GNU_verneed and respect versioned undefined symbols in shared objects

An undefined symbol in a shared object can be versioned, like `f@v1`.
We currently insert `f` as an Undefined into the symbol table, but we
should insert `f@v1` instead.

The string `v1` is inferred from SHT_GNU_versym and SHT_GNU_verneed.
This patch implements the functionality.

Failing to do this can cause two issues:

* If a versioned symbol referenced by a shared object is defined in the
  executable, we will fail to export it.
* If a versioned symbol referenced by a shared object in another object
  file, --no-allow-shlib-undefined may spuriously report an
  "undefined reference to " error. See https://bugs.llvm.org/show_bug.cgi?id=44842
  (Linking -lfftw3 -lm on Arch Linux can cause
  `undefined reference to __log_finite`)

Reviewed By: grimar

Differential Revision: https://reviews.llvm.org/D80059
The file was addedlld/test/ELF/invalid/verneed-shared.yaml
The file was addedlld/test/ELF/verneed-shared.s
The file was modifiedlld/ELF/InputFiles.cpp
The file was modifiedlld/ELF/InputFiles.h
Commit 286ca0f7fd6bf26923f3df464e6a74d032f242ea by arsenm2
Silence warning from unit test

This was printing about r600 not being a valid subtarget for an amdgcn
triple. This is an awkward place because r600 and amdgcn unfortunately
occupy the same target. Silence the warning by specifying an explicit
subtarget.
The file was modifiedllvm/unittests/MI/LiveIntervalTest.cpp
Commit 2e82667f60237c32d8a10eb04825ff434a3e474c by arsenm2
AMDGPU: Define mode register

This should eventually model FP mode constraints as well as the other
special fields it tracks.
The file was modifiedllvm/lib/Target/AMDGPU/SIRegisterInfo.cpp
The file was modifiedllvm/lib/Target/AMDGPU/SIRegisterInfo.td
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp
Commit 76e3dd0a490d7da25ccf35c29b3b7ec34908f7d6 by arsenm2
AMDGPU: Implement isConstantPhysReg

I don't think any of these registers are used in contexts where this
would do anything yet.
The file was modifiedllvm/lib/Target/AMDGPU/SIRegisterInfo.h
The file was modifiedllvm/lib/Target/AMDGPU/SIRegisterInfo.cpp
Commit 1d96dca9491e3d75c11c3cd1acff5fcda8c2f613 by Matthew.Arsenault
HIP: Try to deal with more llvm package layouts

The various HIP builds are all inconsistent.

The default llvm install goes to ${INSTALL_PREFIX}/bin/clang, but the
rocm packaging scripts move this under
${INSTALL_PREFIX}/llvm/bin/clang. Some other builds further pollute
this with ${INSTALL_PREFIX}/bin/x86_64/clang. These should really be
consolidated, but try to handle them for now.
The file was modifiedclang/lib/Driver/ToolChains/AMDGPU.cpp
Commit 27fe841aa650a24fd98da2fb6c6eb2fca806a63f by Matthew.Arsenault
AMDGPU: Refine rcp/rsq intrinsic folding for modern FP rules

We have to assume undef could be an snan, which would need quieting so
returning qnan is safer than undef. Also consider strictfp, and don't
care if the result rounded.
The file was modifiedllvm/test/Transforms/InstCombine/AMDGPU/amdgcn-intrinsics.ll
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
Commit cdd006eec9409923f9a56b9026ce2cb72e7b71dc by Matthew.Arsenault
SimplifyCFG: Clean up optforfuzzing implementation

This should function as any other SimplifyCFGOption rather than having
the transform check and specially consider the attribute itself.
The file was modifiedllvm/lib/Transforms/Scalar/SimplifyCFGPass.cpp
The file was modifiedllvm/include/llvm/Transforms/Utils/Local.h
The file was modifiedllvm/lib/Transforms/Utils/SimplifyCFG.cpp
Commit fe0006c882f1c134b2abe8552d48c876cde9343d by llvm-dev
TargetLowering.h - remove unnecessary TargetMachine.h include. NFC

Replace with forward declaration and move dependency down to source files that actually need it.

Both TargetLowering.h and TargetMachine.h are 2 of the most expensive headers (top 10) in the ClangBuildAnalyzer report when building llc.
The file was modifiedllvm/lib/LTO/UpdateCompilerUsed.cpp
The file was modifiedllvm/lib/Target/WebAssembly/WebAssemblyCFGStackify.cpp
The file was modifiedllvm/lib/Target/X86/X86Subtarget.h
The file was modifiedllvm/lib/CodeGen/LiveDebugValues.cpp
The file was modifiedllvm/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp
The file was modifiedllvm/lib/Target/SystemZ/SystemZTDC.cpp
The file was modifiedllvm/lib/CodeGen/AsmPrinter/WinException.cpp
The file was modifiedllvm/lib/CodeGen/SelectionDAG/InstrEmitter.cpp
The file was modifiedllvm/lib/CodeGen/TypePromotion.cpp
The file was modifiedllvm/lib/CodeGen/ExpandMemCmp.cpp
The file was modifiedllvm/lib/Target/X86/X86TargetObjectFile.cpp
The file was modifiedllvm/lib/CodeGen/SwitchLoweringUtils.cpp
The file was modifiedllvm/lib/CodeGen/GlobalISel/InstructionSelect.cpp
The file was modifiedllvm/include/llvm/CodeGen/TargetLowering.h
The file was modifiedllvm/lib/Target/SystemZ/SystemZFrameLowering.cpp
The file was modifiedllvm/lib/Target/WebAssembly/WebAssemblyMachineFunctionInfo.cpp
The file was modifiedllvm/lib/CodeGen/Analysis.cpp
The file was modifiedllvm/lib/CodeGen/LowerEmuTLS.cpp
The file was modifiedllvm/lib/Target/Sparc/SparcTargetObjectFile.cpp
The file was modifiedllvm/lib/CodeGen/GlobalISel/CallLowering.cpp
The file was modifiedllvm/lib/Target/ARM/ARMSubtarget.h
The file was modifiedllvm/lib/Target/SystemZ/SystemZSubtarget.cpp
The file was modifiedllvm/lib/Target/WebAssembly/WebAssemblyLateEHPrepare.cpp