SuccessChanges

Summary

  1. [X86] Add icmp ne/eq (srl (ctlz x), log2(bw)) test coverage. (details)
  2. Remove some unused <vector> includes. NFCI. (details)
  3. [AArch64] Rearrange mul(dup(sext/zext)) to mul(sext/zext(dup)) (details)
  4. [TargetLowering] Add icmp ne/eq (srl (ctlz x), log2(bw)) vector support. (details)
  5. [flang][driver] Add support for `-D`, `-U` (details)
Commit b69fe6a85db43df27ebb260716d41a3e1b0d7534 by llvm-dev
[X86] Add icmp ne/eq (srl (ctlz x), log2(bw)) test coverage.

Add vector coverage as well (which isn't currently supported).
The file was addedllvm/test/CodeGen/X86/lzcnt-cmp.ll
Commit 500864f928c272e8ebfd6493cb749083124bfd8b by llvm-dev
Remove some unused <vector> includes. NFCI.

<vector> (unlike many other c++ headers) is relatively clean, so if the file doesn't use std::vector then it shouldn't need the header.
The file was modifiedllvm/include/llvm/Analysis/InlineAdvisor.h
The file was modifiedllvm/include/llvm/ExecutionEngine/JITEventListener.h
The file was modifiedllvm/include/llvm/CodeGen/CodeGenPassBuilder.h
Commit 350247a93c07906300b79955ff882004a92ae368 by nicholas.guy
[AArch64] Rearrange mul(dup(sext/zext)) to mul(sext/zext(dup))

Performing this rearrangement allows for existing patterns
to match cases where the vector may be built after an extend,
instead of before.

Differential Revision: https://reviews.llvm.org/D91255
The file was modifiedllvm/lib/Target/AArch64/AArch64ISelLowering.cpp
The file was addedllvm/test/CodeGen/AArch64/aarch64-dup-ext.ll
The file was addedllvm/test/CodeGen/AArch64/aarch64-dup-ext-scalable.ll
Commit 1307e3f6c46cc3a6e6ad9cd46fc67efafcac939e by llvm-dev
[TargetLowering] Add icmp ne/eq (srl (ctlz x), log2(bw)) vector support.
The file was modifiedllvm/test/CodeGen/X86/lzcnt-cmp.ll
The file was modifiedllvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
Commit 7809fa20400000fd40b4a4b56696c7fbcd0f0fa9 by andrzej.warzynski
[flang][driver] Add support for `-D`, `-U`

Add support for options -D and -U in the new Flang driver.

Summary of changes:
  - Create PreprocessorOptions, to be used by the driver then translated
    into Fortran::parser::Options
  - Create CompilerInvocation::setFortranOpts to pass preprocessor
    options into the parser options
  - Add a dedicated method, Flang::AddPreprocessingOptions, to extract
    preprocessing options from the driver arguments into the preprocessor
    command arguments

Macros specified like -DName will default to definition 1.

When defining macros, the new driver will drop anything after an
end-of-line character. This is consistent with gfortran and clang, but
different to what currently f18 does. However, flang (which is a bash
wrapper for f18), also drops everything after an end-of-line character.
So gfortran-like behaviour felt like the natural choice. Test is added
to demonstrate this behaviour.

Reviewed By: awarzynski

Differential Revision: https://reviews.llvm.org/D93401
The file was modifiedflang/lib/Frontend/CompilerInvocation.cpp
The file was modifiedclang/lib/Driver/ToolChains/Flang.cpp
The file was modifiedclang/include/clang/Driver/Options.td
The file was modifiedflang/include/flang/Frontend/CompilerInstance.h
The file was addedflang/test/Flang-Driver/macro_multiline.f90
The file was modifiedclang/lib/Driver/ToolChains/Flang.h
The file was modifiedflang/lib/Frontend/CompilerInstance.cpp
The file was modifiedflang/test/Flang-Driver/driver-help-hidden.f90
The file was modifiedflang/test/Flang-Driver/driver-help.f90
The file was modifiedflang/include/flang/Frontend/CompilerInvocation.h
The file was addedflang/include/flang/Frontend/PreprocessorOptions.h
The file was addedflang/test/Flang-Driver/macro_def_undef.f90