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 Fix unchecked uses of DominatorTree in MemoryDependenceAnalysis. 2013-05-06 02:07:24 +00:00
Archive
AsmParser Add ArrayRef constructor from None, and do the cleanups that this constructor enables 2013-05-05 00:40:33 +00:00
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 Measure time that IR parsing took as part of the -time-passes measurement. 2013-04-03 15:33:45 +00:00
Linker Fix a performance bug in the Linker. 2013-05-04 05:05:18 +00:00
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 Allow TableGen DAG arguments to be just a name. 2013-03-24 19:36:51 +00:00
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 Split out the IRReader header and the utility functions it provides into 2013-03-26 02:25:37 +00:00
LLVMBuild.txt Split out the IRReader header and the utility functions it provides into 2013-03-26 02:25:37 +00:00
Makefile Split out the IRReader header and the utility functions it provides into 2013-03-26 02:25:37 +00:00