1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 11:13:28 +01:00
Go to file
Mircea Trofin e90406ee2a [llvm] Make new pass manager's OptimizationLevel a class
Summary:
The old pass manager separated speed optimization and size optimization
levels into two unsigned values. Coallescing both in an enum in the new
pass manager may lead to unintentional casts and comparisons.

In particular, taking a look at how the loop unroll passes were constructed
previously, the Os/Oz are now (==new pass manager) treated just like O3,
likely unintentionally.

This change disallows raw comparisons between optimization levels, to
avoid such unintended effects. As an effect, the O{s|z} behavior changes
for loop unrolling and loop unroll and jam, matching O2 rather than O3.

The change also parameterizes the threshold values used for loop
unrolling, primarily to aid testing.

Reviewers: tejohnson, davidxl

Reviewed By: tejohnson

Subscribers: zzheng, ychen, mehdi_amini, hiraditya, steven_wu, dexonsmith, dang, cfe-commits, llvm-commits

Tags: #clang, #llvm

Differential Revision: https://reviews.llvm.org/D72547
2020-01-16 09:00:56 -08:00
benchmarks
bindings [NFC] Fix trivial typos in comments 2020-01-06 10:50:26 +00:00
cmake [CMake] Enable -qfuncsect when building with IBM XL 2020-01-15 10:45:50 -05:00
docs Revert "[Support] make report_fatal_error abort instead of exit" 2020-01-15 17:52:25 -08:00
examples [ORC] Simplify use of lazyReexports with LLJIT. 2020-01-15 08:02:53 -08:00
include [llvm] Make new pass manager's OptimizationLevel a class 2020-01-16 09:00:56 -08:00
lib [llvm] Make new pass manager's OptimizationLevel a class 2020-01-16 09:00:56 -08:00
projects Add few docs and implementation of strcpy and strcat. 2019-10-04 17:30:54 +00:00
resources
runtimes [llvm/runtimes] Add runtimes as a dependency of clang-bootstrap-deps 2019-12-16 16:58:15 -08:00
test [llvm] Make new pass manager's OptimizationLevel a class 2020-01-16 09:00:56 -08:00
tools [DWARF] Emit DW_AT_call_return_pc as an address 2020-01-15 13:02:23 -08:00
unittests [llvm-exegesis][mips] Add RegisterAliasingTest unit test 2020-01-16 17:50:45 +01:00
utils [gn build] Port 6b357866496 2020-01-16 16:56:26 +00:00
.arcconfig
.clang-format
.clang-tidy
.gitattributes
.gitignore
CMakeLists.txt Bump the trunk major version to 11 2020-01-15 13:38:01 +01:00
CODE_OWNERS.TXT [VE] Target stub for NEC SX-Aurora 2020-01-09 11:17:35 +01:00
configure
CREDITS.TXT
LICENSE.TXT
llvm.spec.in
LLVMBuild.txt
README.txt
RELEASE_TESTERS.TXT

The LLVM Compiler Infrastructure
================================

This directory and its subdirectories contain source code for LLVM,
a toolkit for the construction of highly optimized compilers,
optimizers, and runtime environments.

LLVM is open source software. You may freely distribute it under the terms of
the license agreement found in LICENSE.txt.

Please see the documentation provided in docs/ for further
assistance with LLVM, and in particular docs/GettingStarted.rst for getting
started with LLVM and docs/README.txt for an overview of LLVM's
documentation setup.

If you are writing a package for LLVM, see docs/Packaging.rst for our
suggestions.