FailedChanges

Summary

  1. [X86] Use Align in reduceMaskedLoadToScalarLoad/reduceMaskedStoreToScalarStore. Correct pointer info. (details)
  2. [Bugpoint][NewPM] Pin bugpoint to legacy PM (details)
  3. [ConstraintElimination] Add constraint elimination pass. (details)
  4. [gn build] Port 3d42d549554 (details)
  5. Fix .debug_aranges parsing. (details)
  6. [DemandedBits][NewPM] Pin some tests to legacy PM (details)
  7. [Dominators][NewPM] Pin tests with -analyze to legacy PM (details)
  8. [libc++] Fix broken test for std::any and allocators (details)
Commit 05134877e64ded64f6c3064173b98893b1ac5fb5 by craig.topper
[X86] Use Align in reduceMaskedLoadToScalarLoad/reduceMaskedStoreToScalarStore. Correct pointer info.

If we offset the pointer, we also need to offset the pointer info

Differential Revision: https://reviews.llvm.org/D87593
The file was modifiedllvm/test/CodeGen/X86/vmaskmov-offset.ll (diff)
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp (diff)
Commit ca76d6e94a30b8fe11a63d3a55d3903c7cd25b5d by aeubanks
[Bugpoint][NewPM] Pin bugpoint to legacy PM

Bugpoint has lots of assumptions and hacks around the legacy PM, put off migrating it to NPM until later.
Fixes tests under BugPoint under NPM.

Reviewed By: arsenm

Differential Revision: https://reviews.llvm.org/D87655
The file was modifiedllvm/tools/bugpoint/OptimizerDriver.cpp (diff)
The file was modifiedllvm/test/BugPoint/unsymbolized.ll (diff)
Commit 3d42d549554889ca182e1f3d31b23fa1383c6678 by flo
[ConstraintElimination] Add constraint elimination pass.

This patch is a first draft of a new pass that adds a more flexible way
to eliminate compares based on more complex constraints collected from
dominating conditions.

In particular, it aims at simplifying conditions of the forms below
using a forward propagation approach, rather than instcomine-style
ad-hoc backwards walking of def-use chains.

    if (x < y)
      if (y < z)
        if (x < z) <- simplify

or

    if (x + 2 < y)
        if (x + 1 < y) <- simplify assuming no wraps

The general approach is to collect conditions and blocks, sort them by
dominance and then iterate over the sorted list. Conditions are turned
into a linear inequality and add it to a system containing the linear
inequalities that hold on entry to the block. For blocks, we check each
compare against the system and see if it is implied by the constraints
in the system.

We also keep a stack of processed conditions and remove conditions from
the stack and the constraint system once they go out-of-scope (= do not
dominate the current block any longer).

Currently there still are the least the following areas for improvements

* Currently large unsigned constants cannot be added to the system
  (coefficients must be represented as integers)
* The way constraints are managed currently is not very optimized.

Reviewed By: spatel

Differential Revision: https://reviews.llvm.org/D84547
The file was modifiedllvm/lib/Transforms/Scalar/Scalar.cpp (diff)
The file was modifiedllvm/test/Transforms/ConstraintElimination/i128.ll (diff)
The file was modifiedllvm/lib/Transforms/IPO/PassManagerBuilder.cpp (diff)
The file was modifiedllvm/test/Transforms/ConstraintElimination/loops.ll (diff)
The file was modifiedllvm/test/Transforms/ConstraintElimination/mixed.ll (diff)
The file was modifiedllvm/test/Transforms/ConstraintElimination/ule.ll (diff)
The file was modifiedllvm/include/llvm/Transforms/Scalar.h (diff)
The file was modifiedllvm/test/Transforms/ConstraintElimination/uge.ll (diff)
The file was modifiedllvm/test/Transforms/ConstraintElimination/geps.2d.ll (diff)
The file was modifiedllvm/test/Transforms/ConstraintElimination/geps.ll (diff)
The file was modifiedllvm/lib/Transforms/Scalar/CMakeLists.txt (diff)
The file was modifiedllvm/test/Transforms/ConstraintElimination/dom.ll (diff)
The file was modifiedllvm/include/llvm/Analysis/ConstraintSystem.h (diff)
The file was addedllvm/lib/Transforms/Scalar/ConstraintElimination.cpp
The file was modifiedllvm/test/Transforms/ConstraintElimination/ugt-ule.ll (diff)
The file was modifiedllvm/include/llvm/InitializePasses.h (diff)
Commit 32a61531b8181b1fdfa058803444f73ae6ab29ff by llvmgnsyncbot
[gn build] Port 3d42d549554
The file was modifiedllvm/utils/gn/secondary/llvm/lib/Transforms/Scalar/BUILD.gn (diff)
Commit 79f22b1f99fd72db9a45c387258d289791f2b9c0 by gclayton
Fix .debug_aranges parsing.

Code was added that used llvm error checking to parse .debug_aranges, but the error check after parsing the DWARFDebugArangesSet was reversed and was causing no error to be returned with no valid address ranges being actually used. This meant we always would fall back onto creating out own address ranges by parsing the compile unit's ranges. This was causing problems for cases where the DW_TAG_compile_unit had a single address range by using a DW_AT_low_pc and DW_AT_high_pc attribute pair (not using a DW_AT_ranges attribute), but the .debug_aranges had correct split ranges. In this case we would end up using the single range for the compile unit that encompassed all of the ranges from the .debug_aranges section and would cause address resolving issues in LLDB where address lookups would fail for certain addresses.

Differential Revision: https://reviews.llvm.org/D87626
The file was modifiedlldb/unittests/SymbolFile/DWARF/SymbolFileDWARFTests.cpp (diff)
The file was modifiedlldb/source/Plugins/SymbolFile/DWARF/DWARFDebugAranges.cpp (diff)
Commit d158e786ccd33f8c9fc3ab008dd9463e252fa36a by aeubanks
[DemandedBits][NewPM] Pin some tests to legacy PM

All tests have corresponding NPM RUN lines.
-analyze doesn't work under NPM.
The file was modifiedllvm/test/Analysis/DemandedBits/intrinsics.ll (diff)
The file was modifiedllvm/test/Analysis/DemandedBits/add.ll (diff)
The file was modifiedllvm/test/Analysis/DemandedBits/basic.ll (diff)
The file was modifiedllvm/test/Analysis/DemandedBits/vectors.ll (diff)
Commit 558e5c31b66e114f164ad798de1f26b49042ed5e by aeubanks
[Dominators][NewPM] Pin tests with -analyze to legacy PM

-analyze isn't supported in NPM. All affected tests have corresponding
NPM RUN line.
The file was modifiedllvm/test/Analysis/Dominators/2006-10-02-BreakCritEdges.ll (diff)
The file was modifiedllvm/test/Analysis/Dominators/basic.ll (diff)
Commit 583c8ce30c12511a814a1db2923b9809f2a15c54 by Louis Dionne
[libc++] Fix broken test for std::any and allocators

The test was not allocating the right number of bytes. This is my fault,
not Marshall's, as I was the one to write the tests for 39c879514170.
The file was modifiedlibcxx/test/libcxx/utilities/any/allocator.pass.cpp (diff)