llvm-project/llvm/lib
Tobias Grosser e3684d0b84 [SCEV] Assume parameters coming from function calls contain IVs
The optimistic delinearization implemented in LLVM detects array sizes by
looking for non-linear products between parameters and induction variables.
In OpenCL code, such products often look like:

  A[get_global_id(0) * N + get_global_id(1)]

Hence, the IV is hidden in the get_global_id() call and consequently
delinearization would fail as no induction variable is available that helps
us to identify N as array size parameter.

We now use a very simple heuristic to change this. We assume that each parameter
that comes directly from a function call is a hidden induction variable. As
a result, we can delinearize the access above to:

  A[get_global_id(0)][get_global_id(1]

llvm-svn: 304073
2017-05-27 15:17:49 +00:00
..
Analysis [SCEV] Assume parameters coming from function calls contain IVs 2017-05-27 15:17:49 +00:00
AsmParser [IR] De-virtualize ~Value to save a vptr 2017-05-18 17:24:10 +00:00
Bitcode Bitcode: Remove some dead code. Spotted by Teresa. 2017-05-26 23:21:40 +00:00
CodeGen [DAGCombiner] use narrow load to avoid vector extract 2017-05-27 14:07:03 +00:00
DebugInfo Revert r304002 "[DWARF] - Make collectAddressRanges() return section index in addition to Low/High PC" 2017-05-26 17:36:23 +00:00
Demangle [Demangler] copy changes made in libcxxabi's r303718 to ItaniumDemangle 2017-05-27 01:48:34 +00:00
ExecutionEngine [RuntimeDyld, PowerPC] Fix regression from r303637 2017-05-23 17:03:23 +00:00
Fuzzer [libFuzzer] Don't replace custom signal handlers. 2017-05-25 01:43:13 +00:00
IR [IR] Add an iterator and range accessor for the PHI nodes of a basic 2017-05-26 03:10:00 +00:00
IRReader Timer: Track name and description. 2016-11-18 19:43:18 +00:00
LTO [lib/LTO] Don't reinvent the code for switching linkage. 2017-05-26 21:56:14 +00:00
LineEditor
Linker Support for taking the max of module flags when linking, use for PIE/PIC 2017-05-23 00:08:00 +00:00
MC [WebAssembly] MC: Include unnamed data when writing wasm files 2017-05-25 21:08:07 +00:00
Object Revert r304002 "[DWARF] - Make collectAddressRanges() return section index in addition to Low/High PC" 2017-05-26 17:36:23 +00:00
ObjectYAML [WebAssembly] Fix build error in wasm YAML code 2017-05-10 00:14:04 +00:00
Option [GSoC] Shell autocompletion for clang 2017-05-23 18:39:08 +00:00
Passes [PM] Enable the new simple loop unswitch pass in the new pass manager 2017-05-26 01:24:11 +00:00
ProfileData Change sample profile writer to make it deterministic. 2017-05-11 23:43:44 +00:00
Support Make helper functions static. NFC. 2017-05-26 20:09:00 +00:00
TableGen [TableGen] Remove all the static vectors named TheActualPool. 2017-05-27 06:14:12 +00:00
Target AArch64/PEI: Do not add reserved regs to liveins 2017-05-27 03:38:02 +00:00
ToolDrivers Add missing files 2017-05-13 22:10:13 +00:00
Transforms [coroutines] Define getPassName() for coroutine passes 2017-05-27 05:54:30 +00:00
XRay [XRay][lib] Support and temporarily skip over CustomEvent records 2017-05-12 01:06:41 +00:00
CMakeLists.txt Move lib/LibDriver -> lib/ToolDrivers/llvm-lib. NFCI. 2017-05-13 22:06:46 +00:00
LLVMBuild.txt Move lib/LibDriver -> lib/ToolDrivers/llvm-lib. NFCI. 2017-05-13 22:06:46 +00:00