LLVM backend for 6502
Go to file
Adam Nemet 7063c7e084 [LoopAccesses 2/3] Allow querying of interesting dependences
Gather an array of interesting dependences rather than just failing
after the first unsafe one and regarding the loop unsafe.  Loop
Distribution needs to be able to collect all dependences in order to
isolate the dependence cycles into their own partition.

Since the dependence checking algorithm is quadratic in terms of
accesses sharing the same underlying pointer, I am applying a cut-off
threshold (MaxInterestingDependence).  Exceeding that, the logic reverts
back to the original approach deeming the loop unsafe upon encountering
the first unsafe dependence.

The main idea of the patch is to split isDepedent from directly
answering the question whether the dep is safe for vectorization to
return a dependence type which then gets mapped to old boolean result
using Dependence::isSafeForVectorization.

Tested that this was compile-time neutral on SpecINT2006 LTO bitcode
inputs.  No assembly change on the testsuite including external.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@231806 91177308-0d34-0410-b5e6-96231b3b80d8
2015-03-10 17:40:37 +00:00
autoconf Drop the hacks used for partial C99 math libraries. 2015-03-09 18:35:18 +00:00
bindings Go bindings: use MDNode::replaceAllUsesWith instead of MDTuple::replaceAllUsesWith. 2015-03-05 22:55:38 +00:00
cmake Drop the hacks used for partial C99 math libraries. 2015-03-09 18:35:18 +00:00
docs Introduce runtime unrolling disable matadata and use it to mark the scalar loop from vectorization. 2015-03-09 06:14:18 +00:00
examples Fix the build of the gold-plugin and examples. 2015-03-04 19:15:29 +00:00
include [LoopAccesses 2/3] Allow querying of interesting dependences 2015-03-10 17:40:37 +00:00
lib [LoopAccesses 2/3] Allow querying of interesting dependences 2015-03-10 17:40:37 +00:00
projects
test Teach lowering to correctly handle invoke statepoint and gc results tied to them. Note that we still can not lower gc.relocates for invoke statepoints. 2015-03-10 16:26:48 +00:00
tools Teach raw_ostream to accept SmallString. 2015-03-10 07:33:23 +00:00
unittests DataLayout is mandatory, update the API to reflect it with references. 2015-03-10 02:37:25 +00:00
utils Teach raw_ostream to accept SmallString. 2015-03-10 07:33:23 +00:00
.arcconfig
.clang-format
.clang-tidy
.gitignore
CMakeLists.txt Teach the LLVM CMake build how to explicitly use libc++abi when using 2015-03-07 10:30:34 +00:00
CODE_OWNERS.TXT [CODE_OWNERS] Change the ownership of register allocators. 2015-03-05 22:15:17 +00:00
configure Drop the hacks used for partial C99 math libraries. 2015-03-09 18:35:18 +00:00
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.