llvm-6502/lib
Adam Nemet 09fa5a537e [LAA] Begin moving the logic of generating checks out of addRuntimeCheck
Summary:
The goal is to start moving us closer to the model where
RuntimePointerChecking will compute and store the checks.  Then a client
can filter the check according to its requirements and then use the
filtered list of checks with addRuntimeCheck.

Before the patch, this is all done in addRuntimeCheck.  So the patch
starts to split up addRuntimeCheck while providing the old API under
what's more or less a wrapper now.

The new underlying addRuntimeCheck takes a collection of checks now,
expands the code for the bounds then generates the code for the checks.

I am not completely happy with making expandBounds static because now it
needs so many explicit arguments but I don't want to make the type
PointerBounds part of LAI.  This should get fixed when addRuntimeCheck
is moved to LoopVersioning where it really belongs, IMO.

Audited the assembly diff of the testsuite (including externals).  There
is a tiny bit of assembly churn that is due to the different order the
code for the bounds is expanded now
(MultiSource/Benchmarks/Prolangs-C/bison/conflicts.s and with LoopDist
on 456.hmmer/fast_algorithms.s).

Reviewers: hfinkel

Subscribers: klimek, llvm-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@243239 91177308-0d34-0410-b5e6-96231b3b80d8
2015-07-26 05:32:14 +00:00
..
Analysis [LAA] Begin moving the logic of generating checks out of addRuntimeCheck 2015-07-26 05:32:14 +00:00
AsmParser AsmParser: Add a function to parse a standalone constant value. 2015-07-17 22:07:03 +00:00
Bitcode Add argmemonly attribute. 2015-07-11 10:30:36 +00:00
CodeGen MIR Serialization: Serialize MachineFrameInfo's callee saved information. 2015-07-24 22:22:50 +00:00
DebugInfo
ExecutionEngine [RuntimeDyld] MachO: Add support for ARM scattered vanilla relocations. 2015-07-24 17:40:04 +00:00
Fuzzer [libFuzzer] allow users to supply their own implementation of rand 2015-07-24 01:06:40 +00:00
IR DI/Verifier: Fix argument bitrot in DILocalVariable 2015-07-24 23:59:25 +00:00
IRReader
LibDriver Add support for producing thin archives in llvm-lib. 2015-07-17 16:01:11 +00:00
LineEditor
Linker
LTO Remove access to the DataLayout in the TargetMachine 2015-07-24 16:04:22 +00:00
MC Fix a -Winconsistent-missing-override failure in the .intel_syntax 2015-07-22 11:22:29 +00:00
Object Fix fetching the symbol table of a thin archive. 2015-07-22 19:34:26 +00:00
Option
Passes
ProfileData
Support Remove unnecessary in C++11 c_str() calls 2015-07-23 05:49:29 +00:00
TableGen [TableGen] Change a couple methods to return an ArrayRef instead of a const std::vector reference. NFC 2015-07-06 06:23:01 +00:00
Target [AArch64][FastISel] Always use an AND instruction when truncating to non-legal types. 2015-07-25 02:16:53 +00:00
Transforms [InstCombine][SSE4A] Standardized references to Length/Width and Index/Start to match AMD docs. NFCI. 2015-07-25 20:41:00 +00:00
CMakeLists.txt
LLVMBuild.txt Wrap some long lines in LLVMBuild files. NFC 2015-06-12 18:44:57 +00:00
Makefile