SuccessChanges

Summary

  1. [SystemZ] Support z15 processor name (details)
  2. [SystemZ] Support z15 processor name (details)
  3. Fix assertion failure when constant evaluation of a switch jumps over an (details)
  4. Remove outdated FIXME. (details)
  5. [SampleFDO] Expose an interface to return the size of a section or the (details)
  6. [Inliner] Remove incorrect early exit during switch cost computation (details)
  7. dotest.py: bugfix: test filters with -f do not work on Python3 (details)
  8. prepare_binding_Python: print readable errors if SWIG fails (details)
  9. [GlobalISel] Defer setting HasCalls on MachineFrameInfo to selection (details)
Commit 819c1651f723b51490eb98b3fc11cbd7dafc7831 by ulrich.weigand
[SystemZ] Support z15 processor name
The recently announced IBM z15 processor implements the architecture
already supported as "arch13" in LLVM.  This patch adds support for
"z15" as an alternate architecture name for arch13.
The patch also uses z15 in a number of places where we used arch13 as
long as the official name was not yet announced.
llvm-svn: 372435
The file was modifiedllvm/test/CodeGen/SystemZ/vec-bswap-02.ll
The file was modifiedllvm/lib/Target/SystemZ/SystemZProcessors.td
The file was removedllvm/test/MC/Disassembler/SystemZ/insns-arch13.txt
The file was removedllvm/test/MC/SystemZ/insn-good-arch13.s
The file was addedllvm/test/MC/SystemZ/insn-good-z15.s
The file was modifiedllvm/test/Analysis/CostModel/SystemZ/fp-cast.ll
The file was modifiedllvm/lib/Target/SystemZ/SystemZISelLowering.cpp
The file was addedllvm/lib/Target/SystemZ/SystemZScheduleZ15.td
The file was modifiedllvm/test/Analysis/CostModel/SystemZ/intrinsics.ll
The file was modifiedllvm/lib/Support/Host.cpp
The file was addedllvm/test/MC/SystemZ/insn-bad-z15.s
The file was modifiedllvm/test/CodeGen/SystemZ/cond-move-03.ll
The file was modifiedllvm/test/CodeGen/SystemZ/vec-bswap-03.ll
The file was modifiedllvm/test/CodeGen/SystemZ/vec-intrinsics-03.ll
The file was modifiedllvm/test/CodeGen/SystemZ/vec-bswap-07.ll
The file was modifiedllvm/test/CodeGen/SystemZ/ctpop-02.ll
The file was modifiedllvm/test/CodeGen/SystemZ/vec-bswap-05.ll
The file was removedllvm/lib/Target/SystemZ/SystemZScheduleArch13.td
The file was modifiedllvm/test/CodeGen/SystemZ/not-01.ll
The file was modifiedllvm/test/Analysis/CostModel/SystemZ/logic-miscext3.ll
The file was modifiedllvm/lib/Target/SystemZ/SystemZTargetTransformInfo.cpp
The file was modifiedllvm/test/CodeGen/SystemZ/cond-move-07.ll
The file was modifiedllvm/test/CodeGen/SystemZ/vec-bswap-01.ll
The file was modifiedllvm/lib/Target/SystemZ/SystemZSchedule.td
The file was modifiedllvm/test/CodeGen/SystemZ/cond-move-06.ll
The file was modifiedllvm/test/CodeGen/SystemZ/vec-bswap-06.ll
The file was modifiedllvm/test/CodeGen/SystemZ/vec-strict-conv-03.ll
The file was modifiedllvm/test/CodeGen/SystemZ/cond-move-02.ll
The file was modifiedllvm/test/CodeGen/SystemZ/vec-conv-03.ll
The file was removedllvm/test/MC/SystemZ/insn-bad-arch13.s
The file was modifiedllvm/test/CodeGen/SystemZ/vec-eswap-01.ll
The file was addedllvm/test/MC/Disassembler/SystemZ/insns-z15.txt
The file was modifiedllvm/test/CodeGen/SystemZ/vec-bswap-04.ll
The file was modifiedllvm/test/CodeGen/SystemZ/cond-move-01.ll
The file was modifiedllvm/test/CodeGen/SystemZ/vec-eswap-02.ll
The file was modifiedllvm/test/CodeGen/SystemZ/cond-move-08.mir
Commit 48b40834dc59ec1d02f59b1c36360b12c58b3c7b by ulrich.weigand
[SystemZ] Support z15 processor name
The recently announced IBM z15 processor implements the architecture
already supported as "arch13" in LLVM.  This patch adds support for
"z15" as an alternate architecture name for arch13.
Corrsponding LLVM support was committed as rev. 372435.
llvm-svn: 372436
The file was modifiedclang/test/CodeGen/builtins-systemz-vector3-error.c
The file was modifiedclang/test/CodeGen/builtins-systemz-zvector3.c
The file was modifiedclang/test/Preprocessor/predefined-arch-macros.c
The file was modifiedclang/test/CodeGen/builtins-systemz-zvector3-error.c
The file was modifiedclang/test/Driver/systemz-march.c
The file was modifiedclang/test/Misc/target-invalid-cpu-note.c
The file was modifiedclang/lib/Basic/Targets/SystemZ.cpp
The file was modifiedclang/test/CodeGen/builtins-systemz-vector3.c
The file was modifiedclang/test/CodeGen/systemz-abi-vector.c
The file was modifiedclang/test/CodeGen/target-data.c
The file was modifiedclang/test/CodeGen/systemz-abi.c
Commit 397a686762e229c32857efc4e66b4e6cf72bee93 by richard-llvm
Fix assertion failure when constant evaluation of a switch jumps over an
uninitialized variable in an init-statement of a 'for' or 'if'.
llvm-svn: 372437
The file was modifiedclang/lib/AST/ExprConstant.cpp
The file was modifiedclang/test/SemaCXX/constant-expression-cxx2a.cpp
Commit 6c0894b58ac8cbf12383f18789ac5a161a18f141 by richard-llvm
Remove outdated FIXME.
llvm-svn: 372438
The file was modifiedclang/lib/AST/ExprConstant.cpp
Commit f118852046a1d255ed8c65c6b5db320e8cea53a0 by wmi
[SampleFDO] Expose an interface to return the size of a section or the
size of the profile for profile in ExtBinary format.
Sometimes we want to limit the size of the profile by stripping some
functions with low sample count or by stripping some function names with
small text size from profile symbol list. That requires the profile
reader to have the interfaces returning the size of a section or the
size of total profile. The patch add those interfaces.
At the same time, add some dump facility to show the size of each
section.
llvm-svn: 372439
The file was modifiedllvm/include/llvm/ProfileData/SampleProf.h
The file was addedllvm/test/tools/llvm-profdata/show-prof-size.test
The file was modifiedllvm/include/llvm/ProfileData/SampleProfReader.h
The file was modifiedllvm/lib/ProfileData/SampleProfReader.cpp
The file was modifiedllvm/tools/llvm-profdata/llvm-profdata.cpp
Commit 2f32e5d84d3483a0d6170fc61d2cceb49fc930a3 by tejohnson
[Inliner] Remove incorrect early exit during switch cost computation
Summary: The CallAnalyzer::visitSwitchInst has an early exit when the
estimated lower bound of the switch cost will put the overall cost of
the inline above the threshold. However, this code is not correctly
estimating the lower bound for switches that can be transformed into bit
tests, leading to unnecessary lost inlines, and also differing behavior
with optimization remarks enabled.
First, the early exit is controlled by whether ComputeFullInlineCost is
enabled or not, and that in turn is disabled by default but enabled when
enabling -pass-remarks=missed. This by itself wouldn't lead to a
problem, except that as described below, the lower bound can be above
the real lower bound, so we can sometimes get different inline decisions
with inline remarks enabled, which is problematic.
The early exit was added in along with a new switch cost model in
D31085. The reason why this early exit was added is due to a concern one
reviewer raised about compile time for large switches:
https://reviews.llvm.org/D31085?id=94559#inline-276200
However, the code just below there calls
getEstimatedNumberOfCaseClusters, which in turn immediately calls
BasicTTIImpl getEstimatedNumberOfCaseClusters, which in the worst case
does a linear scan of the cases to get the high and low values. The bit
test handling in particular is guarded by whether the number of cases
fits into the max bit width. There is no suggestion that anyone measured
a compile time issue, it appears to be theoretical.
The problem is that the reviewer's comment about the lower bound
calculation is incorrect, specifically in the case of a switch that can
be lowered to a bit test. This isn't followed up on the comment thread,
but the author does add a FIXME to that effect above the early exit
added when they subsequently revised the patch.
As a result, we were incorrectly early exiting and not inlining
functions with switch statements that would be lowered to bit tests in
cases where we were nearing the threshold. Combined with the fact that
this early exit was skipped with opt remarks enabled, this caused
different inlining decisions to be made when -pass-remarks=missed is
enabled to debug the missing inline.
Remove the early exit for the above reasons.
I also copied over an existing AArch64 inlining test to X86, and
adjusted the threshold so that the bit test inline only occurs with the
fix in this patch.
Reviewers: davidxl
Subscribers: eraman, kristof.beyls, haicheng, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D67716
llvm-svn: 372440
The file was modifiedllvm/lib/Analysis/InlineCost.cpp
The file was addedllvm/test/Transforms/Inline/X86/switch.ll
Commit e021d6909436c6baac2dc7c9065340862a9b9aa2 by Jonas Devlieghere
dotest.py: bugfix: test filters with -f do not work on Python3
dotest -f does not work on Python3.
The name types.UnboundMethodType was an alias for types.MethodType in
2.7, but it does not exist in python3. MethodType works in both.
Also the actual type returned from SomeClass.some_method in python3 will
be types.Function, not MethodType.
Patch by: Lawrence D'Anna
Differential revision: https://reviews.llvm.org/D67791
llvm-svn: 372441
The file was modifiedlldb/third_party/Python/module/unittest2/unittest2/loader.py
Commit 7d6a95cf83fcca92e64302194995601474bc161a by Jonas Devlieghere
prepare_binding_Python: print readable errors if SWIG fails
When swig fails, all the errors are squished onto one line with \n
quoting. It's very hard to read. This will print them out in a more
reasonable format.
Patch by: Lawrence D'Anna
Differential revision: https://reviews.llvm.org/D67790
llvm-svn: 372442
The file was modifiedlldb/scripts/Python/prepare_binding_Python.py
Commit 7ac1039957f9aebcdf3ccf36cdd11067eb42b832 by aemerson
[GlobalISel] Defer setting HasCalls on MachineFrameInfo to selection
time.
We currently always set the HasCalls on MFI during translation and
legalization if we're handling a call or legalizing to a libcall.
However, if that call is later optimized to a tail call then we don't
need the flag. The flag being set to true causes frame lowering to
always save and restore FP/LR, which adds unnecessary code.
This change does the same thing as SelectionDAG and ports over some code
that scans instructions after selection, using TargetInstrInfo to
determine if target opcodes are known calls.
Code size geomean improvements on CTMark:
-O0 : 0.1%
-Os : 0.3%
Differential Revision: https://reviews.llvm.org/D67868
llvm-svn: 372443
The file was modifiedllvm/lib/CodeGen/GlobalISel/InstructionSelect.cpp
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/call-translator.ll
The file was addedllvm/test/CodeGen/AArch64/GlobalISel/tail-call-no-save-fp-lr.ll
The file was modifiedllvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
The file was modifiedllvm/lib/CodeGen/GlobalISel/IRTranslator.cpp