llvm-6502/lib
Hans Wennborg 4d48c3f1aa LazyValueInfo: Actually re-visit partially solved block-values in solveBlockValue()
If solveBlockValue() needs results from predecessors that are not already
computed, it returns false with the intention of resuming when the dependencies
have been resolved. However, the computation would never be resumed since an
'overdefined' result had been placed in the cache, preventing any further
computation.

The point of placing the 'overdefined' result in the cache seems to have been
to break cycles, but we can check for that when inserting work items in the
BlockValue stack instead. This makes the "stop and resume" mechanism of
solveBlockValue() work as intended, unlocking more analysis.

Using this patch shaves 120 KB off a 64-bit Chromium build on Linux.

I benchmarked compiling bzip2.c at -O2 but couldn't measure any difference in
compile time.

Tests by Jiangning Liu from r215343 / PR21238, Pete Cooper, and me.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@222768 91177308-0d34-0410-b5e6-96231b3b80d8
2014-11-25 17:23:05 +00:00
..
Analysis LazyValueInfo: Actually re-visit partially solved block-values in solveBlockValue() 2014-11-25 17:23:05 +00:00
AsmParser Update SetVector to rely on the underlying set's insert to return a pair<iterator, bool> 2014-11-19 07:49:26 +00:00
Bitcode Add and use Type::subtypes. NFC. 2014-11-24 20:44:36 +00:00
CodeGen Converted back to Unix format (after my last commit 222632) 2014-11-23 15:21:53 +00:00
DebugInfo Make DWARFAcceleratorTable::dump() const. 2014-11-20 16:21:11 +00:00
ExecutionEngine [MCJIT] Remove JITEventListener::NotifyFreeingMachineCode. This method is dead 2014-11-21 01:57:09 +00:00
IR Revert r220349 to re-instate r220277 with a fix for PR21330 -- quite 2014-11-25 08:20:27 +00:00
IRReader Remove unused variable. NFC. 2014-11-06 23:16:57 +00:00
LineEditor
Linker Set the body of a new struct as soon as it is created. 2014-11-25 15:33:40 +00:00
LTO Remove StringMap::GetOrCreateValue in favor of StringMap::insert 2014-11-19 05:49:42 +00:00
MC Reapply 222538 and update tests to explicitly request small code model 2014-11-25 13:37:55 +00:00
Object COFF: Add back an assertion that is superseded by r222124 2014-11-25 07:43:14 +00:00
Option
ProfileData llvm-cov: Sink some reporting logic into CoverageMapping 2014-11-14 01:50:32 +00:00
Support [msan] Annotate zlib functions for MemorySanitizer. 2014-11-25 15:24:07 +00:00
TableGen
Target Revert r222746: That commit did not update any tests and caused two R600 2014-11-25 10:50:41 +00:00
Transforms [InstCombine] Change LLVM To canonicalize toward the value type being 2014-11-25 10:09:51 +00:00
CMakeLists.txt
LLVMBuild.txt
Makefile