llvm-6502/include/llvm
Sebastian Pop 421b2c571c remove constant terms
The delinearization is needed only to remove the non linearity induced by
expressions involving multiplications of parameters and induction variables.
There is no problem in dealing with constant times parameters, or constant times
an induction variable.

For this reason, the current patch discards all constant terms and multipliers
before running the delinearization algorithm on the terms. The only thing
remaining in the term expressions are parameters and multiply expressions of
parameters: these simplified term expressions are passed to the array shape
recognizer that will not recognize constant dimensions anymore: these will be
recognized as different strides in parametric subscripts.

The only important special case of a constant dimension is the size of elements.
Instead of relying on the delinearization to infer the size of an element,
compute the element size from the base address type. This is a much more precise
way of computing the element size than before, as we would have mixed together
the size of an element with the strides of the innermost dimension.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@209691 91177308-0d34-0410-b5e6-96231b3b80d8
2014-05-27 22:41:45 +00:00
..
ADT Attempt to placate compilers that warn on casts between pointer-to-object and 2014-05-23 01:22:46 +00:00
Analysis remove constant terms 2014-05-27 22:41:45 +00:00
AsmParser
Bitcode Add 'nonnull', a new parameter and return attribute which indicates that the pointer is not null. Instcombine will elide comparisons between these and null. Patch by Luqman Aden! 2014-05-20 01:23:40 +00:00
CodeGen CodeGen: Make MachineBasicBlock::back skip to the beginning of the last bundle. 2014-05-24 13:13:17 +00:00
Config
DebugInfo [DWARF parser] Teach DIContext to fetch short (non-linkage) function names for a given address. 2014-05-17 00:07:48 +00:00
ExecutionEngine
IR Fix some misplaced spaces around 'override' 2014-05-24 20:19:40 +00:00
IRReader
LineEditor
Linker
LTO
MC [mips][mips64r6] Add Relocations R_MIPS_PCHI16, R_MIPS_PCLO16 2014-05-27 14:58:51 +00:00
Object Remove last uses of OwningPtr from llvm. As far as I can tell these method versions are not used by lldb, lld, or clang. 2014-05-18 21:55:38 +00:00
Option Options: Use erase_if to remove Args from the list. 2014-05-18 15:14:13 +00:00
ProfileData ProfileData: Allow multiple profiles in RawInstrProfReader 2014-05-16 00:38:00 +00:00
Support [ARM] Emit correct build attributes for the relocation models. 2014-05-27 13:30:21 +00:00
TableGen Fix some misplaced spaces around 'override' 2014-05-24 20:19:40 +00:00
Target Make early if conversion dependent upon the subtarget and add 2014-05-21 23:40:26 +00:00
Transforms Make the LoopRotate pass's maximum header size configurable both programmatically 2014-05-26 08:58:51 +00:00
CMakeLists.txt [modules] Add module maps for LLVM. These are not quite ready for prime-time 2014-05-21 02:46:14 +00:00
InitializePasses.h
LinkAllIR.h
LinkAllPasses.h
module.modulemap [modules] Add module maps for LLVM. These are not quite ready for prime-time 2014-05-21 02:46:14 +00:00
module.modulemap.build [modules] Add module maps for LLVM. These are not quite ready for prime-time 2014-05-21 02:46:14 +00:00
Pass.h Revert "[PM] Add pass run listeners to the pass manager." 2014-05-15 17:49:20 +00:00
PassAnalysisSupport.h
PassManager.h
PassRegistry.h
PassSupport.h Revert "[PM] Add pass run listeners to the pass manager." 2014-05-15 17:49:20 +00:00