History log of /llvm-project/polly/lib/Support/SCEVValidator.cpp (Results 76 – 99 of 99)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
Revision tags: llvmorg-3.4.1-rc1, llvmorg-3.4.0, llvmorg-3.4.0-rc3
# 7b6f9ba5 09-Dec-2013 Tobias Grosser <tobias@grosser.es>

ScopValidator: smax expressions are no parameters

This fixes PR18155 which is a regression introduced in 152913.

llvm-svn: 196827


Revision tags: llvmorg-3.4.0-rc2, llvmorg-3.4.0-rc1
# dd6dc827 15-Oct-2013 Tobias Grosser <tobias@grosser.es>

clang-format: No empty line after 'public:'

llvm-svn: 192710


# e42ddb9a 05-Aug-2013 Tobias Grosser <tobias@grosser.es>

ScopInfo: Split start value from SCEVAddRecExpr to enable parameter sharing.

SCoP invariant parameters with the different start value would deter parameter
sharing. For example, when compiling the f

ScopInfo: Split start value from SCEVAddRecExpr to enable parameter sharing.

SCoP invariant parameters with the different start value would deter parameter
sharing. For example, when compiling the following C code:

void foo(float *input) {
for (long j = 0; j < 8; j++) {
// SCoP begin
for (long i = 0; i < 8; i++) {
float x = input[j * 64 + i + 1];
input[j * 64 + i] = x * x;
}
}
}

Polly would creat two parameters for these memory accesses:

p_0: {0,+,256}
p_2: {4,+,256}
[j * 64 + i + 1] => MemRef_input[o0] : 4o0 = p_1 + 4i0
[j * 64 + i] => MemRef_input[o0] : 4o0 = p_0 + 4i0

These parameters only differ from start value. To enable parameter sharing,
we split the start value from SCEVAddRecExpr, so they would share a single
parameter that always has zero start value:

p0: {0,+,256}<%for.cond1.preheader>
[j * 64 + i + 1] => MemRef_input[o0] : 4o0 = 4 + p_1 + 4i0
[j * 64 + i] => MemRef_input[o0] : 4o0 = p_0 + 4i0

Such translation can make the polly-dependence much faster.

Contributed-by: Star Tan <tanmx_star@yeah.net>
llvm-svn: 187728

show more ...


Revision tags: llvmorg-3.3.1-rc1
# 58032cb0 23-Jun-2013 Tobias Grosser <grosser@fim.uni-passau.de>

Integrate latest clang-format changes

llvm-svn: 184655


Revision tags: llvmorg-3.3.0, llvmorg-3.3.0-rc3, llvmorg-3.3.0-rc2, llvmorg-3.3.0-rc1
# e602a076 07-May-2013 Tobias Grosser <grosser@fim.uni-passau.de>

Reformat with clang-format

clang-format become way more stable. This time we mainly reformat function
signatures.

llvm-svn: 181294


# 3ed2600c 14-Apr-2013 Tobias Grosser <grosser@fim.uni-passau.de>

SCEVValidator: Correctly store 'k * p' as a parameter

We do not only need to understand that 'k * p' is a parameter expression, but
also need to store this expression in the set of parameters. Befor

SCEVValidator: Correctly store 'k * p' as a parameter

We do not only need to understand that 'k * p' is a parameter expression, but
also need to store this expression in the set of parameters. Before this patch
we wrongly stored the two individual parameters %k and %p.

Reported by: Sebastian Pop <spop@codeaurora.org>

llvm-svn: 179485

show more ...


# ecb50927 10-Apr-2013 Tobias Grosser <grosser@fim.uni-passau.de>

ScopDetect: Allow multiplications of the form <param> * <param>

We handle these by treating this result of the multiplication as an additional
parameter.

llvm-svn: 179163


# 4d96c8d7 23-Mar-2013 Tobias Grosser <grosser@fim.uni-passau.de>

clang-format: Many more files

After this commit, polly is clang-format clean. This can be tested with
'ninja polly-check-format'. Updates to clang-format may change this, but the
differences will ho

clang-format: Many more files

After this commit, polly is clang-format clean. This can be tested with
'ninja polly-check-format'. Updates to clang-format may change this, but the
differences will hopefully be both small and general improvements to the
formatting.

We currently have some not very nice formatting for a couple of items, DEBUG()
stmts for example. I believe the benefit of being clang-format clean outweights
the not perfect layout of this code.

llvm-svn: 177796

show more ...


# 97cb813c 18-Mar-2013 Sebastian Pop <spop@codeaurora.org>

Correct function to decide if a SCEV can be ignored

When doing SCEV based code generation, we ignore instructions calculating values
that are fully defined by a SCEV expression. The values that are

Correct function to decide if a SCEV can be ignored

When doing SCEV based code generation, we ignore instructions calculating values
that are fully defined by a SCEV expression. The values that are calculated by
this instructions are recalculated on demand.

This commit improves the check to verify if certain instructions can be ignored
and recalculated on demand.

llvm-svn: 177313

show more ...


# de49b8fa 22-Feb-2013 Tobias Grosser <grosser@fim.uni-passau.de>

Support: clang-format

llvm-svn: 175874


Revision tags: llvmorg-3.2.0, llvmorg-3.2.0-rc3, llvmorg-3.2.0-rc2, llvmorg-3.2.0-rc1
# eeb776a4 08-Sep-2012 Tobias Grosser <grosser@fim.uni-passau.de>

SCEVValidator: Add debug output that gives the reason for invalid expressions

llvm-svn: 163472


Revision tags: llvmorg-3.1.0, llvmorg-3.1.0-rc3, llvmorg-3.1.0-rc2, llvmorg-3.1.0-rc1
# f9fbbdfd 09-Apr-2012 Tobias Grosser <grosser@fim.uni-passau.de>

Fix typos.

Pointed out by: Sebastian Pop <sebpop@gmail.com>

llvm-svn: 154337


# 3ec2abc5 16-Mar-2012 Tobias Grosser <grosser@fim.uni-passau.de>

Don't allow pointer types in affine expressions

We currently do not support pointer types in affine expressions. Hence, we
disallow in the SCoP detection. Later we may decide to add support for them

Don't allow pointer types in affine expressions

We currently do not support pointer types in affine expressions. Hence, we
disallow in the SCoP detection. Later we may decide to add support for them.

This fixes PR12277

Reported-By: Sebastian Pop <sebpop@gmail.com>
llvm-svn: 152928

show more ...


# 371badaa 16-Mar-2012 Tobias Grosser <grosser@fim.uni-passau.de>

SCEVValidator: Ensure that parameters are recorded correctly

This also fixes UMax where we did not correctly keep track of the parameters.
Fixes PR12275.

Reported-By: Sebastian Pop <sebpop@gmail.c

SCEVValidator: Ensure that parameters are recorded correctly

This also fixes UMax where we did not correctly keep track of the parameters.
Fixes PR12275.

Reported-By: Sebastian Pop <sebpop@gmail.com>
llvm-svn: 152913

show more ...


# 540757b0 16-Mar-2012 Tobias Grosser <grosser@fim.uni-passau.de>

ScevValidator: Add printer for ValidatorResult

llvm-svn: 152912


# edb8a280 17-Nov-2011 Tobias Grosser <grosser@fim.uni-passau.de>

SCEVValidator: Fix coding standards in ValidatorResult

llvm-svn: 144907


# fa043f00 17-Nov-2011 Tobias Grosser <grosser@fim.uni-passau.de>

SCEVValidator: Make ValidatorResult a class and enforce the use of wproper accessors

llvm-svn: 144906


# b1f07c5c 17-Nov-2011 Tobias Grosser <grosser@fim.uni-passau.de>

SCEVValidator: Document SCEVType and ValidatorResult

Suggested by Sebastian Pop.

llvm-svn: 144905


# bcc0a0d5 17-Nov-2011 Tobias Grosser <grosser@fim.uni-passau.de>

SCEVValidator: Restructure the logic of visitAddRecExpr

Suggested by Sebastian Pop.

llvm-svn: 144904


# 2a7cd942 17-Nov-2011 Tobias Grosser <grosser@fim.uni-passau.de>

SCEVValidator: Fix typo

llvm-svn: 144903


# 7ffe4e8b 17-Nov-2011 Tobias Grosser <grosser@fim.uni-passau.de>

Fix placement of the '*' that marks a pointer

Suggested by Sebastian Pop.

llvm-svn: 144902


Revision tags: llvmorg-3.0.0, llvmorg-3.0.0-rc4
# e5e171ea 10-Nov-2011 Tobias Grosser <grosser@fim.uni-passau.de>

Reuse the old BaseAddress checking in SCEVValidator to make sure that no base
address is part of the access function. Also remove unused special cases that
were necessery when the base address was st

Reuse the old BaseAddress checking in SCEVValidator to make sure that no base
address is part of the access function. Also remove unused special cases that
were necessery when the base address was still contained in the access function

llvm-svn: 144280

show more ...


# 60b54f19 08-Nov-2011 Tobias Grosser <grosser@fim.uni-passau.de>

Detect Parameters directly on the SCEV.

Instead of using TempScop to find parameters, we detect them directly
on the SCEV. This allows us to remove the TempScop parameter detection
in a subsequent c

Detect Parameters directly on the SCEV.

Instead of using TempScop to find parameters, we detect them directly
on the SCEV. This allows us to remove the TempScop parameter detection
in a subsequent commit.

This fixes a bug reported by Marcello Maggioni <hayarms@gmail.com>

llvm-svn: 144087

show more ...


Revision tags: llvmorg-3.0.0-rc3
# 120db6b5 07-Nov-2011 Tobias Grosser <grosser@fim.uni-passau.de>

SCEVValidator: Move into own file

llvm-svn: 143960


1234