SuccessChanges

Summary

  1. [libc++] NFC: Remove unused ability to pass additional Lit features (details)
Commit a5b58cdd800d0d45b1bdd1f7fe058db6acbfd918 by Louis Dionne
[libc++] NFC: Remove unused ability to pass additional Lit features
The file was modifiedzorg/buildbot/builders/LibcxxAndAbiBuilder.py (diff)

Summary

  1. Fix warning caused by __builtin_expect_with_probability was not handled (details)
  2. [MLIR][SPIRVToLLVM] Conversion of SPIR-V array, runtime array, and pointer types (details)
  3. [MSP430] Align the _Complex ABI with current msp430-gcc (details)
  4. Refactored NumericLiteralParser to not require a Preprocessor (details)
  5. Revert 51b0da73 "Recommit "[X86] Merge the FEATURE_64BIT and FEATURE_EM64T bits in X86TargetParser.def."" (details)
  6. [SCCP] Move tests using only ipsccp from IPConstantProp to SCCP (NFC). (details)
  7. [PowerPC] Split s34imm into two types (details)
  8. [AliasSetTracker] More precise AAInfo intersection check (details)
  9. [compiler-rt] Better Windows support for running tests in external shell (details)
  10. [lldb] Use enum constant instead of raw value (details)
  11. [compiler-rt] [test] Use the parent process env as base env in tests (details)
  12. [runtimes] Allow passing Lit parameters through CMake (details)
  13. [compiler-rt] [test] Allow expanding lit substitutions recursively (details)
  14. [PGO][PGSO] Add profile guided size optimization tests to X86 ISel Lowering. (details)
Commit 4d4d9037670a3537c14092807a717284ea0c4f92 by erich.keane
Fix warning caused by __builtin_expect_with_probability was not handled
in places such as constant folding

Previously some places that should have handled
__builtin_expect_with_probability is missing, so in some case it acts
differently than __builtin_expect.
For example it was not handled in constant folding, thus in the
following program, the "if" condition should be constantly true and
folded, but previously it was not handled and cause warning "control may
reach end of non-void function" (while __builtin_expect does not):

__attribute__((noreturn)) extern void bar();
int foo(int x, int y) {
  if (y) {
    if (__builtin_expect_with_probability(1, 1, 1))
      bar();
  }
  else
    return 0;
}

Now it's fixed.

Differential Revisions: https://reviews.llvm.org/D83362
The file was modifiedclang/test/Sema/builtin-expect-with-probability.cpp
The file was modifiedclang/lib/StaticAnalyzer/Checkers/BuiltinFunctionChecker.cpp
The file was modifiedclang/lib/AST/ExprConstant.cpp
Commit 28cd3cbc12577fa44f9b15c2ffaf9fb1bc280590 by georgemitenk0v
[MLIR][SPIRVToLLVM] Conversion of SPIR-V array, runtime array, and pointer types

This patch adds type conversion for 4 SPIR-V types: array, runtime array, pointer
and struct. This conversion is integrated using a separate function
`populateSPIRVToLLVMTypeConversion()` that adds new type conversions. At the moment,
this is a basic skeleton that allows to perfom conversion from SPIR-V array,
runtime array and pointer types to LLVM typesystem. There is no support of array
strides or storage classes. These will be supported on the case by case basis.

Reviewed By: antiagainst

Differential Revision: https://reviews.llvm.org/D83399
The file was modifiedmlir/include/mlir/Conversion/SPIRVToLLVM/ConvertSPIRVToLLVM.h
The file was modifiedmlir/lib/Conversion/SPIRVToLLVM/ConvertSPIRVToLLVM.cpp
The file was modifiedmlir/test/Conversion/SPIRVToLLVM/cast-ops-to-llvm.mlir
The file was addedmlir/test/Conversion/SPIRVToLLVM/spirv-types-to-llvm.invalid.mlir
The file was modifiedmlir/lib/Conversion/SPIRVToLLVM/ConvertSPIRVToLLVMPass.cpp
The file was addedmlir/test/Conversion/SPIRVToLLVM/spirv-types-to-llvm.mlir
Commit 67422e4294754e08f277b1ba22820487eb76b918 by atrosinenko
[MSP430] Align the _Complex ABI with current msp430-gcc

Assembler output is checked against msp430-gcc 9.2.0.50 from TI.

Reviewed By: asl

Differential Revision: https://reviews.llvm.org/D82646
The file was addedclang/test/CodeGen/msp430-abi-complex.c
The file was modifiedclang/lib/CodeGen/TargetInfo.cpp
Commit 3cca818efabbccdde36b06609cf75ee7caa8e012 by gribozavr
Refactored NumericLiteralParser to not require a Preprocessor

Summary:
We would like to use NumericLiteralParser in the implementation of the
syntax tree builder, and plumbing a preprocessor there seems
inconvenient and superfluous.

Reviewers: eduucaldas

Reviewed By: eduucaldas

Subscribers: gribozavr2, cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D83480
The file was modifiedclang/lib/Lex/LiteralSupport.cpp
The file was modifiedclang/lib/Lex/PPExpressions.cpp
The file was modifiedclang/lib/Sema/SemaExpr.cpp
The file was modifiedclang/include/clang/Lex/LiteralSupport.h
The file was modifiedclang/lib/Lex/Preprocessor.cpp
Commit 9ecda9aa804dcb49e30e46161b29976494b0a1f9 by hans
Revert 51b0da73 "Recommit "[X86] Merge the FEATURE_64BIT and FEATURE_EM64T bits in X86TargetParser.def.""

It gets miscompiled with GCC 5.3, causing Clang to crash with
"error: unknown target CPU 'x86-64'"

See the llvm-commits thread for reproduction steps.

This reverts commit 51b0da731af75c68dd521e04cc576d5a611b1612.
The file was modifiedllvm/include/llvm/Support/X86TargetParser.def
The file was modifiedllvm/lib/Support/X86TargetParser.cpp
The file was modifiedllvm/lib/Support/Host.cpp
Commit 9477d39e61f8e0076e47fef81941e8a24e979d6f by flo
[SCCP] Move tests using only ipsccp from IPConstantProp to SCCP (NFC).

Some of the tests in the llvm/test/Transforms/IPConstantProp directory
actually only use -ipsccp. Those tests belong to the other (IP)SCCP
tests in llvm/test/Transforms/SCCP/ and this commits moves them there to
avoid confusion with IPConstantProp.
The file was addedllvm/test/Transforms/SCCP/2009-09-24-byval-ptr.ll
The file was addedllvm/test/Transforms/SCCP/remove-call-inst.ll
The file was removedllvm/test/Transforms/IPConstantProp/user-with-multiple-uses.ll
The file was addedllvm/test/Transforms/SCCP/musttail-call.ll
The file was addedllvm/test/Transforms/SCCP/PR16052.ll
The file was removedllvm/test/Transforms/IPConstantProp/PR26044.ll
The file was addedllvm/test/Transforms/SCCP/global.ll
The file was addedllvm/test/Transforms/SCCP/fp-bc-icmp-const-fold.ll
The file was removedllvm/test/Transforms/IPConstantProp/global.ll
The file was removedllvm/test/Transforms/IPConstantProp/PR16052.ll
The file was removedllvm/test/Transforms/IPConstantProp/fp-bc-icmp-const-fold.ll
The file was addedllvm/test/Transforms/SCCP/dangling-block-address.ll
The file was removedllvm/test/Transforms/IPConstantProp/remove-call-inst.ll
The file was removedllvm/test/Transforms/IPConstantProp/solve-after-each-resolving-undefs-for-function.ll
The file was addedllvm/test/Transforms/SCCP/PR26044.ll
The file was addedllvm/test/Transforms/SCCP/user-with-multiple-uses.ll
The file was removedllvm/test/Transforms/IPConstantProp/2009-09-24-byval-ptr.ll
The file was addedllvm/test/Transforms/SCCP/solve-after-each-resolving-undefs-for-function.ll
The file was removedllvm/test/Transforms/IPConstantProp/musttail-call.ll
The file was removedllvm/test/Transforms/IPConstantProp/dangling-block-address.ll
Commit bd2068031121adf5a0e28d9306a1741d6f0bbd87 by kamau.bridgeman
[PowerPC] Split s34imm into two types

Currently the instruction paddi always takes s34imm as the type for the
34 bit immediate. However, the PC Relative form of the instruction should
not produce the same fixup as the non PC Relative form.
This patch splits the s34imm type into s34imm and s34imm_pcrel so that two
different fixups can be emitted.

Reviewed By: kamaub, nemanjai

Differential Revision: https://reviews.llvm.org/D83255
The file was modifiedllvm/lib/Target/PowerPC/PPCInstrInfo.td
The file was modifiedllvm/lib/Target/PowerPC/MCTargetDesc/PPCAsmBackend.cpp
The file was modifiedllvm/lib/Target/PowerPC/MCTargetDesc/PPCELFObjectWriter.cpp
The file was addedllvm/test/MC/PowerPC/ppc64-errors-emit-obj.s
The file was modifiedllvm/lib/Target/PowerPC/MCTargetDesc/PPCMCCodeEmitter.h
The file was modifiedllvm/lib/Target/PowerPC/MCTargetDesc/PPCMCCodeEmitter.cpp
The file was modifiedllvm/lib/Target/PowerPC/PPCInstrPrefix.td
The file was modifiedllvm/lib/Target/PowerPC/MCTargetDesc/PPCFixupKinds.h
Commit afc1a709433e3754ee3819efd9e144b657919131 by nikita.ppv
[AliasSetTracker] More precise AAInfo intersection check

The code currently checks whether the intersection has one of TBAA,
Scope or NoAlias unset -- however, those might have already been
unset in the first place, in which case we will unnecessarily
report a change. Instead, compare the intersection result to the
original AAInfo.

This makes for a 0.5% geomean compile-time saving on CTMark.

Differential Revision: https://reviews.llvm.org/D83430
The file was modifiedllvm/include/llvm/Analysis/AliasSetTracker.h
Commit a89d54fd61a6e7a05f7434491135e667306a22e7 by jaskiewiczs
[compiler-rt] Better Windows support for running tests in external shell

Summary:
These changes are necessary to support remote running compiler-rt tests
that were compiled on Windows.

Most of the code here has been copy-pasted from other lit configs.

Why do we remove the conversions to ASCII in the crt config?

We set the `universal_newlines` argument to `True` in `Popen` instead.
This is supported in both Python 2.7 and 3, is easier
(no need to do the `str(dir.decode('ascii'))` dance) and less
error prone.

Also, this is necessary because if the config is executed on Windows,
and `execute_external` is `True`, we take the branch
`if sys.platform in ['win32'] and execute_external`,
and if we use Python 3, then the `dir` variable is a byte-like object,
not str, but the ``replace method on byte-like objects requires its
arguments to also be byte-like objects, which is incompatible with
Python 2 etc etc.

It is a lot simpler to just work with strings in the first place, which
is achieved by setting `universal_newlines` to `True`. As far as
I understand, this way wasn't taken because of the need to support
Python <2.7, but this is not the case now.

Reviewers: compnerd, phosek, weimingz

Reviewed By: compnerd

Subscribers: dberris, #sanitizers

Tags: #sanitizers

Differential Revision: https://reviews.llvm.org/D83485
The file was modifiedcompiler-rt/test/builtins/Unit/lit.cfg.py
The file was modifiedcompiler-rt/test/crt/lit.cfg.py
Commit e529d774c4d5d1eba13dcad5eef2195dd06741c6 by Fred Riss
[lldb] Use enum constant instead of raw value
The file was modifiedllvm/include/llvm/BinaryFormat/MachO.h
The file was modifiedlldb/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp
Commit 5ab446cfe5503fd4431a94db4d741cf3b5fdcd15 by jaskiewiczs
[compiler-rt] [test] Use the parent process env as base env in tests

Summary:
Right now the lit config builds up an environment that the tests will be run in. However, it does it from scratch instead of adding new variables to the parent process environment. This may (and does) result in strange behavior when running tests with an executor (i. e. with the `COMPILER_RT_EMULATOR` CMake variable set to something), since the executor may need some of the parent process's environment variables.

Here this is fixed.

Reviewers: compnerd, phosek

Reviewed By: compnerd

Subscribers: dberris, #sanitizers

Tags: #sanitizers

Differential Revision: https://reviews.llvm.org/D83486
The file was modifiedcompiler-rt/test/lit.common.cfg.py
Commit 6f69318c7248275b509ecf0f88eb2ba725aaeb82 by Louis Dionne
[runtimes] Allow passing Lit parameters through CMake

This allows passing parameters to the test suites without using
LLVM_LIT_ARGS. The problem is that we sometimes want to set some
Lit arguments on the CMake command line, but the Lit parameters in
a CMake cache file. If the only knob to do that is LLVM_LIT_ARGS,
the command-line entry overrides the cache one, and the parameters
set by the cache are ignored.

This fixes a current issue with the build bots that they completely
ignore the 'std' param set by Lit, because other Lit arguments are
provided via LLVM_LIT_ARGS on the CMake command-line.
The file was modifiedlibcxx/cmake/caches/Generic-cxx2a.cmake
The file was modifiedlibcxx/cmake/caches/Generic-cxx17.cmake
The file was modifiedlibcxx/cmake/caches/Generic-cxx11.cmake
The file was modifiedlibcxxabi/CMakeLists.txt
The file was modifiedlibcxx/CMakeLists.txt
The file was modifiedlibcxx/cmake/caches/Generic-cxx03.cmake
The file was modifiedlibcxx/cmake/caches/Generic-cxx14.cmake
The file was modifiedlibcxx/test/CMakeLists.txt
The file was modifiedlibcxxabi/test/CMakeLists.txt
Commit 8372d505082aceb38417e0b561cd32f2e227597b by jaskiewiczs
[compiler-rt] [test] Allow expanding lit substitutions recursively

Summary:
This allows using lit substitutions in the `COMPILER_RT_EMULATOR` variable.

(For reference, the ability to expand substitutions recursively has been introduced in https://reviews.llvm.org/D76178.)

Reviewers: phosek, compnerd

Reviewed By: compnerd

Subscribers: dberris, #sanitizers

Tags: #sanitizers

Differential Revision: https://reviews.llvm.org/D83489
The file was modifiedcompiler-rt/test/lit.common.cfg.py
Commit 06fc125d8c5d7d1244ee2160fba52bc1b91ddb99 by yamauchi
[PGO][PGSO] Add profile guided size optimization tests to X86 ISel Lowering.
The file was modifiedllvm/test/CodeGen/X86/phaddsub-extract.ll
The file was modifiedllvm/test/CodeGen/X86/avx-vperm2x128.ll

Summary

  1. [test-suite][AIX] Fix C++ benchmark compatibility issues on AIX (details)
Commit f0caeccfb893344d73474e9d8f6c034ae7f451f9 by wanyu9511
[test-suite][AIX] Fix C++ benchmark compatibility issues on AIX

Summary:
This reimplements what has been reverted in 630313d.

The old implementation applied the X/OPEN compatibility flag to the entire miniFE benchmark. This caused a build failure with `mytimer.cpp` due to its usages of `struct timezone` which is not available on AIX when the said compatibility flag is set. This new fix now also defines "UseTimes" which enables another path in the application to avoid the usages of `timezone`.

Reviewers: hubert.reinterpretcast, daltenty, ShuhongL

Reviewed By: hubert.reinterpretcast

Subscribers: mgorny

Differential Revision: https://reviews.llvm.org/D83342
The file was modifiedMultiSource/Benchmarks/DOE-ProxyApps-C++/miniFE/CMakeLists.txt (diff)