LLVM backend for 6502
Go to file
Philip Reames c50bf46a22 !invariant.load semantics with potentially clobbering calls
A load from an invariant location is assumed to not alias any otherwise potentially aliasing stores. Our implementation only applied this rule to store instructions themselves whereas they it should apply for any memory accessing instruction. This results in both FRE and PRE becoming more effective at eliminating invariant loads.

Note that as a follow on change I will likely move this into AliasAnalysis itself. That's where the TBAA constant flag is handled and the semantics are essentially the same. I'd like to separate the semantic change from the refactoring and thus have extended the hack that's already in MemoryDependenceAnalysis for this change.

Differential Revision: http://reviews.llvm.org/D8591



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@233140 91177308-0d34-0410-b5e6-96231b3b80d8
2015-03-24 23:54:54 +00:00
autoconf
bindings
cmake Disabling warnings for MSVC build to enable /W4 use. 2015-03-24 23:37:10 +00:00
docs docs: Update llvm-cov docs for the -use-color flag 2015-03-19 18:22:46 +00:00
examples
include [llvm-readobj] add support for macho universal binary. 2015-03-24 20:26:55 +00:00
lib !invariant.load semantics with potentially clobbering calls 2015-03-24 23:54:54 +00:00
projects
test !invariant.load semantics with potentially clobbering calls 2015-03-24 23:54:54 +00:00
tools llvm-cov: Require a subcommand when invoked as llvm-cov 2015-03-24 23:34:36 +00:00
unittests Opaque Pointer Types: GEP API migrations to specify the gep type explicitly 2015-03-24 23:34:31 +00:00
utils Revert "Use std::bitset for SubtargetFeatures" 2015-03-24 12:56:59 +00:00
.arcconfig
.clang-format
.clang-tidy
.gitignore
CMakeLists.txt Re-land: Generate targets for each lit suite. 2015-03-23 20:04:00 +00:00
CODE_OWNERS.TXT
configure
CREDITS.TXT
LICENSE.TXT
llvm.spec.in
LLVMBuild.txt
Makefile
Makefile.common
Makefile.config.in
Makefile.rules
README.txt

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

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're writing a package for LLVM, see docs/Packaging.rst for our
suggestions.