llvm-6502/lib
Jakob Stoklund Olesen a88d974ce2 Speed up Value::isUsedInBasicBlock() for long use lists.
This is expanding Ben's original heuristic for short basic blocks to
also work for longer basic blocks and huge use lists.

Scan the basic block and the use list in parallel, terminating the
search when the shorter list ends. In almost all cases, either the basic
block or the use list is short, and the function returns quickly.

In one crazy test case with very long use chains, CodeGenPrepare runs
400x faster. When compiling ARMDisassembler.cpp it is 5x faster.

<rdar://problem/13840497>

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181851 91177308-0d34-0410-b5e6-96231b3b80d8
2013-05-14 23:45:56 +00:00
..
Analysis
Archive
AsmParser
Bitcode Micro-optimization: don't shift an entire bitcode record over to get the code. 2013-05-10 22:17:10 +00:00
CodeGen Make getCompileUnit non-const and return the current DIE if it 2013-05-14 21:33:10 +00:00
DebugInfo libDebugInfo depends on libObject nowadays. 2013-05-09 13:48:26 +00:00
ExecutionEngine SectionMemoryManager shouldn't be a JITMemoryManager. Previously, the 2013-05-14 19:29:00 +00:00
IR Speed up Value::isUsedInBasicBlock() for long use lists. 2013-05-14 23:45:56 +00:00
IRReader
Linker
MC Fix two typo 2013-05-14 23:36:24 +00:00
Object Object: Fix Mach-O relocation printing. 2013-05-14 22:41:29 +00:00
Option
Support Fix __clear_cache declaration. 2013-05-14 18:06:14 +00:00
TableGen
Target ARM ISel: Don't create illegal types during LowerMUL 2013-05-14 22:33:24 +00:00
Transforms Fix two typo 2013-05-14 23:36:24 +00:00
CMakeLists.txt
LLVMBuild.txt
Makefile