hanchenye-llvm-project/llvm/include/llvm
Michael Zolotukhin 37162adf3e [SCEV] createAddRecFromPHI: Optimize for the most common case.
Summary:
The existing implementation creates a symbolic SCEV expression every
time we analyze a phi node and then has to remove it, when the analysis
is finished. This is very expensive, and in most of the cases it's also
unnecessary. According to the data I collected, ~60-70% of analyzed phi
nodes (measured on SPEC) have the following form:
  PN = phi(Start, OP(Self, Constant))
Handling such cases separately significantly speeds this up.

Reviewers: sanjoy, pete

Subscribers: llvm-commits

Differential Revision: https://reviews.llvm.org/D32663

llvm-svn: 302096
2017-05-03 23:53:38 +00:00
..
ADT [APInt] Give the value union a name so we can remove assumptions on VAL being the larger member 2017-05-03 15:46:24 +00:00
Analysis [SCEV] createAddRecFromPHI: Optimize for the most common case. 2017-05-03 23:53:38 +00:00
AsmParser
Bitcode Bitcode: Make the summary reader responsible for merging. NFCI. 2017-05-01 22:04:36 +00:00
CodeGen Re-land r301697 "[IR] Make add/remove Attributes use AttrBuilder instead of AttributeList" 2017-05-02 22:07:37 +00:00
Config Allow suppressing host and target info in VersionPrinter 2017-04-19 00:03:36 +00:00
DebugInfo clang-format and restyle DWARFFormValue before working on it. NFC 2017-05-03 21:53:21 +00:00
Demangle
ExecutionEngine [Orc] Fix a warning by removing an unused lambda capture. 2017-04-24 01:21:23 +00:00
IR [IR] Abstract away ArgNo+1 attribute indexing as much as possible 2017-05-03 18:17:31 +00:00
IRReader
LTO Object, LTO: Add target triple to irsymtab and LTO API. 2017-04-14 02:55:06 +00:00
LibDriver
LineEditor
Linker [Linker] Provide callback for internalization 2017-03-13 18:08:11 +00:00
MC [LLVM][inline-asm] Altmacro absolute expression '%' feature 2017-05-01 13:20:12 +00:00
Object Add llvm::object::getELFSectionTypeName(). 2017-05-02 14:04:52 +00:00
ObjectYAML [WebAssembly] Allow for signed relocation addends 2017-04-26 00:02:31 +00:00
Option Work around MSVC rejects-valid bug related to C++11 narrowing conversions. 2017-04-13 00:14:39 +00:00
Passes Add call branch annotation for ICP promoted direct call in SamplePGO mode. 2017-02-23 22:15:18 +00:00
ProfileData ProfileData: clean up some stale declarations (NFC) 2017-04-24 21:05:05 +00:00
Support [KnownBits] Add methods for determining if KnownBits is a constant value 2017-05-03 23:12:29 +00:00
TableGen [tblgen] GCC/MS builtin to target intrisics map. 2017-04-19 19:14:20 +00:00
Target [PowerPC, DAGCombiner] Fold a << (b % (sizeof(a) * 8)) back to a single instruction 2017-05-03 00:07:02 +00:00
Transforms Rename WeakVH to WeakTrackingVH; NFC 2017-05-01 17:07:49 +00:00
XRay [XRay][tools] Add option to llvm-xray extract to symbolize functions 2017-04-18 23:23:54 +00:00
CMakeLists.txt Support: Add a VCSRevision.h header file. 2017-04-13 01:26:12 +00:00
InitializePasses.h [PM/LoopUnswitch] Introduce a new, simpler loop unswitch pass. 2017-04-27 18:45:20 +00:00
LinkAllIR.h
LinkAllPasses.h [PGO] Memory intrinsic calls optimization based on profiled size 2017-04-04 16:42:20 +00:00
Pass.h
PassAnalysisSupport.h
PassInfo.h
PassRegistry.h
PassSupport.h Fixing outdated comment [NFC] 2017-04-20 18:20:02 +00:00
module.modulemap Recommit: [globalisel] Change LLT constructor string into an LLT-based object that knows how to generate it. 2017-03-07 23:20:35 +00:00
module.modulemap.build