1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 11:13:28 +01:00
Go to file
Amara Emerson 5647d9b15a [GlobalISel][Localizer] Allow localization of G_INTTOPTR and chains of instructions.
G_INTTOPTR can prevent the localizer from moving G_CONSTANTs, but since it's
essentially a side effect free cast instruction we can remat both instructions.
This patch changes the localizer to enable localization of the chains by
iterating over the entry block instructions in reverse order. That way, uses will
localized first, and then the defs are free to be localized as well.

This also changes the previous SmallPtrSet of localized instructions to use a
SetVector instead. We're dealing with pointers and need deterministic iteration
order.

Overall, this change improves ARM64 -O0 CTMark code size by around 0.7% geomean.

Differential Revision: https://reviews.llvm.org/D63630

llvm-svn: 364001
2019-06-21 00:36:19 +00:00
benchmarks
bindings [bindings/go][NFC] Format code with go fmt 2019-06-12 11:59:09 +00:00
cmake Specify log level for CMake messages (less stderr) 2019-06-19 15:25:32 +00:00
docs [FileCheck] Stop qualifying expressions as numeric 2019-06-19 23:47:24 +00:00
examples
include [GlobalISel][Localizer] Allow localization of G_INTTOPTR and chains of instructions. 2019-06-21 00:36:19 +00:00
lib [GlobalISel][Localizer] Allow localization of G_INTTOPTR and chains of instructions. 2019-06-21 00:36:19 +00:00
projects
resources
runtimes Setup testing target dependencies for default runtimes 2019-06-11 00:25:57 +00:00
test [GlobalISel][Localizer] Allow localization of G_INTTOPTR and chains of instructions. 2019-06-21 00:36:19 +00:00
tools [llvm-objcopy][MachO] Rebuild the symbol/string table in the writer 2019-06-21 00:21:50 +00:00
unittests TargetParserTest.ARMExtensionFeatures run out of memory on 32-bit (PR42316) 2019-06-20 09:33:11 +00:00
utils gn build: Merge r363948 2019-06-20 18:18:40 +00:00
.arcconfig
.clang-format
.clang-tidy
.gitattributes
.gitignore gitignore: Ignore Qt Creator project configuration files. NFC 2019-06-12 08:28:31 +00:00
CMakeLists.txt build: extract LLVM distribution target handling 2019-06-14 18:28:57 +00:00
CODE_OWNERS.TXT
configure
CREDITS.TXT [test commit] Add my name to the CREDITS.TXT 2019-05-27 07:48:28 +00:00
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.