hanchenye-llvm-project/llvm
Hal Finkel 0815a05fd7 Make isAliased property for fixed-offset stack objects adjustable
We used to assume that any fixed-offset stack object was not aliased. This
meant that no IR value could point to the memory contained in such an object.
This is a reasonable default, but is not a universally-correct
target-independent fact. For example, on PowerPC (both Darwin and non-Darwin),
some byval arguments are allocated at fixed offsets by the ABI. These, however,
certainly can be pointed to by IR values. This change moves the 'isAliased'
logic out of FixedStackPseudoSourceValue and into MFI, and allows the isAliased
property to be overridden for fixed-offset objects.

This will be used by an upcoming commit to the PowerPC backend to fix PR20280.

No functionality change intended (the behavior of
FixedStackPseudoSourceValue::isAliased has been made more conservative for
callers that don't pass an MFI object, but I don't see any in-tree callers that
do that).

llvm-svn: 215794
2014-08-16 00:17:02 +00:00
..
autoconf Delete support for AuroraUX. 2014-08-14 15:15:09 +00:00
bindings [OCaml] Expose Llvm.get_operand_use. 2014-08-12 02:55:45 +00:00
cmake Make message about building sphinx documentation with CMake more 2014-08-14 11:57:16 +00:00
docs [LIT]Correct name of global lit configuration object to be lit_config (not lit). 2014-08-15 05:54:19 +00:00
examples Temporarily Revert "Nuke the old JIT." as it's not quite ready to 2014-08-07 22:02:54 +00:00
include Make isAliased property for fixed-offset stack objects adjustable 2014-08-16 00:17:02 +00:00
lib Make isAliased property for fixed-offset stack objects adjustable 2014-08-16 00:17:02 +00:00
projects [cmake] Use the external project machinery for libcxxabi so that it can 2014-07-25 10:27:40 +00:00
test [AArch32] Add support for FP rounding operations for ARMv8/AArch32. 2014-08-15 21:38:16 +00:00
tools Silencing some -Wcast-qual warnings and removing some C-style casts at the same time. NFC. 2014-08-14 13:53:19 +00:00
unittests Revert "[Support] Promote cl::StringSaver to a separate utility" 2014-08-15 23:39:01 +00:00
utils Canonicalize header guards into a common format. 2014-08-13 16:26:38 +00:00
.arcconfig
.clang-format
.gitignore Add Polly to the ignored trees. 2014-06-25 13:13:36 +00:00
CMakeLists.txt Fix building with in-tree libc++abi on FreeBSD 2014-08-01 19:23:15 +00:00
CODE_OWNERS.TXT Add a sentence that all entries should include an email address. 2014-08-04 19:33:25 +00:00
CREDITS.TXT Test commit access 2014-08-09 16:05:23 +00:00
LICENSE.TXT
LLVMBuild.txt
Makefile
Makefile.common
Makefile.config.in Track clang r213171 2014-07-16 16:50:34 +00:00
Makefile.rules Delete support for AuroraUX. 2014-08-14 15:15:09 +00:00
README.txt
configure Delete support for AuroraUX. 2014-08-14 15:15:09 +00:00
llvm.spec.in

README.txt

Low Level Virtual Machine (LLVM)
================================

This directory and its subdirectories contain source code for the Low Level
Virtual Machine, 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're writing a package for LLVM, see docs/Packaging.rst for our
suggestions.