llvm-6502/lib
Silviu Baranga a420a14276 [LAA] Fix estimation of number of memchecks
Summary:
We need to add a runtime memcheck for pair of accesses (x,y) where at least one of x and y
are writes.
 
Assuming we have w writes and r reads, currently this number is  estimated as being
w* (w+r-1). This estimation will count (write,write) pairs twice and will overestimate
the number of checks required.

This change adds a getNumberOfChecks method to RuntimePointerCheck, which
will count the number of runtime checks needed (similar in implementation to
needsAnyChecking) and uses it to produce the correct number of runtime checks.

Test Plan:
llvm test suite
spec2k
spec2k6

Performance results: no changes observed (not surprising since the formula for 1 writer is basically the same, which would covers most cases - at least with the current check limit).

Reviewers: anemet

Reviewed By: anemet

Subscribers: mzolotukhin, llvm-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@239295 91177308-0d34-0410-b5e6-96231b3b80d8
2015-06-08 10:27:06 +00:00
..
Analysis [LAA] Fix estimation of number of memchecks 2015-06-08 10:27:06 +00:00
AsmParser Fix doxygen comments. NFC 2015-06-07 06:40:24 +00:00
Bitcode Use early return idiom. NFC 2015-06-06 20:44:53 +00:00
CodeGen [DAGCombiner] Added CTTZ vector constant folding support. 2015-06-08 09:57:09 +00:00
DebugInfo
ExecutionEngine
Fuzzer
IR [AsmWriter] Rewrite module asm printing using StringRef::split. 2015-06-07 13:59:33 +00:00
IRReader
LineEditor
Linker
LTO
MC [MC] Common symbols weren't being checked for redeclaration which allowed an assembly file to generate an assertion in setCommon(): !isCommon(). This change allows redeclaration as long as the size and alignment match exactly, otherwise report a fatal error. 2015-06-06 20:12:40 +00:00
Object Fix Windows build. 2015-06-08 02:43:32 +00:00
Option
Passes
ProfileData
Support TargetParser: Fix comments in enum(s) introduced in r239150. [-Wdocumentation] 2015-06-06 01:41:35 +00:00
TableGen [TableGen] Change OpInit::getNumOperands and getOperand to use unsigned integers. NFC 2015-06-06 01:34:04 +00:00
Target [X86] Added BitScanForward/BitScanReverse memory folding + tests 2015-06-07 18:34:25 +00:00
Transforms [LoopVectorize] Teach Loop Vectorizor about interleaved memory accesses. 2015-06-08 06:39:56 +00:00
CMakeLists.txt
LLVMBuild.txt
Makefile