Commit Graph

435 Commits

Author SHA1 Message Date
Sebastian Pop 9ca6612731 IndependentBlocks: translate out of SSA all uses escaping the region
llvm-svn: 179019
2013-04-08 13:05:41 +00:00
Sebastian Pop cefec6d7e4 SCEVCodegen should not run createIndVarSimplifyPass
llvm-svn: 179018
2013-04-08 13:05:37 +00:00
Tobias Grosser aeabcf24df ScopDetection: Use isTopLevelRegion
Contributed-by: Star Tan <tanmx_star@yeah.net>
llvm-svn: 178530
2013-04-02 06:41:48 +00:00
Tobias Grosser c2bdf1973b RegisterPasses: Improve comments
llvm-svn: 177831
2013-03-23 21:35:52 +00:00
Tobias Grosser 4d96c8d714 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
2013-03-23 01:05:07 +00:00
Tobias Grosser 45af235e09 RegisterPasses: clang-format
llvm-svn: 177787
2013-03-23 00:32:21 +00:00
Tobias Grosser f008da125c Instvarsimplify: clang-format
Even though we will soon get rid of this pass, we reformat it on the way to
make polly clang-format clean.

llvm-svn: 177786
2013-03-23 00:32:18 +00:00
Tobias Grosser 9abbfc0b69 IndependentBlocks: clang-format and remove includes
llvm-svn: 177785
2013-03-23 00:32:15 +00:00
Tobias Grosser c30d9cc678 DeadCodeElimination: clang-format and comment
llvm-svn: 177782
2013-03-23 00:16:05 +00:00
Tobias Grosser 33bc2e93be CodePreparation: Comment and format the file properly
llvm-svn: 177781
2013-03-23 00:13:39 +00:00
Tobias Grosser 369430ffca codegen: properly instantiate SCEVs to the place where they are used
Given the following code

    for (i = 0; i < 10; i++) {
      ;
    }

S:  A[i] = 0

When code generating S using scev based code generation, we need to retrieve
the scev of 'i' at the location of 'S'. If we do not do this the scev that
we obtain will be expressed as {0,+,1}_for and will reference loop iterators
that do not surround 'S' and that we consequently do not know how to code
generate. What we really want is the scev to be instantiated to the value of 'i'
after the loop. This value is {10} and it can be code generated without
troubles.

llvm-svn: 177777
2013-03-22 23:42:53 +00:00
Sebastian Pop 27c10c6b1f ScopInfo: do not call getCanonicalInductionVariable for SCEVCodegen
llvm-svn: 177771
2013-03-22 22:07:43 +00:00
Tobias Grosser 4e318abece Do not canonicalize indvars with scev based codegen
Scev code generation can now handle scops with non canonical induction
variables. Hence there is no need to introduce canonical ones any more.

llvm-svn: 177644
2013-03-21 16:14:53 +00:00
Tobias Grosser 826b2af112 Remove last uses of canoncial induction variable when scev code generating
We now detect scops without a canonical induction variable and can generate a
polyhedral representation for them. There was no modification necessary to
code generate these scops.

llvm-svn: 177643
2013-03-21 16:14:50 +00:00
Tobias Grosser 5bfa4f8eb8 CodePrepare: Do not require canonical induction variables for scev based mode
llvm-svn: 177593
2013-03-20 22:41:53 +00:00
Tobias Grosser ecfe21b792 Remove dependence on canonical induction variable
When using the scev based code generation, we now do not rely on the presence
of a canonical induction variable any more. This commit prepares the path to
(conditionally) disable the induction variable canonicalization pass.

llvm-svn: 177548
2013-03-20 18:03:18 +00:00
Andy Gibbs 36e6ca0143 Remove unnecessary explicit typing in std::make_pair
llvm-svn: 177528
2013-03-20 15:42:59 +00:00
Tobias Grosser b921e6377b Add option -polly-code-generator=none
This allows us to test Polly and the Polly optimizer without actually doing
code generation at the end. By enabling this option, we can also measure the
compile time overhead due to code generation and the cost of LLVM optimizing the
newly generated code.t

llvm-svn: 177516
2013-03-20 13:03:26 +00:00
Tobias Grosser 0fbbbf6aa7 Silence 'variable unused' warning in release mode
llvm-svn: 177515
2013-03-20 13:03:25 +00:00
Tobias Grosser 84b81dee55 ScopDetect: Remove some redundant semicolons
llvm-svn: 177444
2013-03-19 21:44:07 +00:00
Sebastian Pop 97cb813c29 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
2013-03-18 20:21:13 +00:00
Tobias Grosser 0d1cf2b875 ScopHelper: Remove some dead code
llvm-svn: 177307
2013-03-18 19:17:07 +00:00
Sebastian Pop e039bb1fdb use the canonical IV only when it exists
llvm-svn: 177306
2013-03-18 19:09:49 +00:00
Tobias Grosser b2863ca2dc Print function names under --polly-report
llvm-svn: 176446
2013-03-04 19:49:51 +00:00
Tobias Grosser de49b8fa3b Support: clang-format
llvm-svn: 175874
2013-02-22 08:21:52 +00:00
Tobias Grosser 7242ad9226 CodeGen: clang-format
llvm-svn: 175872
2013-02-22 08:07:06 +00:00
Sebastian Pop 47d4ee3ed4 capitalize SCEV to match the current naming convention
llvm-svn: 175306
2013-02-15 21:26:53 +00:00
Sebastian Pop f30d3b2d89 don't store a pointer to the loop in IVS
llvm-svn: 175304
2013-02-15 21:26:48 +00:00
Sebastian Pop 860e021fe6 add NestLoops to remove some uses of IVS
llvm-svn: 175303
2013-02-15 21:26:44 +00:00
Sebastian Pop 637b23dc63 use apply and ScevParameterRewriter::rewrite instead of SCEVRewriter
llvm-svn: 175296
2013-02-15 20:56:01 +00:00
Sebastian Pop 9d10fffa33 add LoopToScev maps
llvm-svn: 175295
2013-02-15 20:55:59 +00:00
Tobias Grosser d535f55146 Formatting fixes
llvm-svn: 175177
2013-02-14 16:42:45 +00:00
Tobias Grosser c14582f276 CodeGen: clang-format goodness
The changed files are not yet clang-format clean, but we are getting close.

llvm-svn: 174403
2013-02-05 18:01:29 +00:00
Tobias Grosser 1f11b44939 TempScopInfo: clang-format
llvm-svn: 174368
2013-02-05 12:27:23 +00:00
Tobias Grosser 14f4c3e9fa Dependences: clang-format
Everything except INITIALIZE_PASS_* macros

llvm-svn: 174367
2013-02-05 12:27:22 +00:00
Tobias Grosser abfbe637bc ScopInfo: clang-format file
clang-format was able to format the entire file except the final
INITIALIZE_PASS_* macros.

llvm-svn: 174366
2013-02-05 12:09:06 +00:00
Tobias Grosser 0d1eee3298 ScopDetect: clang-format pointer types in templates
llvm-svn: 174365
2013-02-05 11:56:05 +00:00
Tobias Grosser af3c00b87b ScopDetection: clang-format some more code
llvm-svn: 174362
2013-02-05 09:40:22 +00:00
Tobias Grosser 428b3e48e2 ScopDetection: Improve printing of alias sets
We now show the all members of the alias set that may couse possible aliasing.
In case a alias set member is not a named instruction (unnamed instructions or
constant expressions), we show the expression itself.

This improves our error message

from:

  Possible aliasing for value: .reg2mem

to:

  Possible aliasing: ".reg2mem",
                     "[0 x double]* inttoptr (i64 47255179264 to [0 x double]*)

llvm-svn: 174329
2013-02-04 15:46:25 +00:00
Tobias Grosser 74394f0dcf clang-format goodness
llvm-svn: 172486
2013-01-14 22:40:23 +00:00
Tobias Grosser b1304ba9b2 Dead code elimination: Make variable names uppercase
llvm-svn: 171844
2013-01-08 08:53:58 +00:00
Tobias Grosser 184e2fcd9c clang-format the dead code elimination pass
llvm-svn: 171843
2013-01-08 08:27:46 +00:00
Chandler Carruth 535d52c7ca Rewrite #includes for llvm/Foo.h to llvm/IR/Foo.h as appropriate to
reflect the migration in r171366.

llvm-svn: 171370
2013-01-02 11:47:44 +00:00
Tobias Grosser ae2d83ec41 Formatting: Break lines after binary operators such as '&&'
assert(Condition
       && "Text");

->

assert(Condition &&
       "Text);

This aligns Polly with the style used in LLVM.

llvm-svn: 171242
2012-12-29 23:57:18 +00:00
Tobias Grosser 1bb59b0dcf Fix obvious formatting problems.
We fix the following formatting problems found by clang-format:

  - 80 cols violations
  - Obvious problems with missing or too many spaces
  - multiple new lines in a row

clang-format suggests many more changes, most of them falling in the following
two categories:

  1) clang-format does not at all format a piece of code nicely

  2) The style that clang-format suggests does not match the style used in
     Polly/LLVM

I consider differences caused by reason 1) bugs, which should be fixed by
improving clang-format. Differences due to 2) need to be investigated closer
to understand the cause of the difference and the solution that should be taken.

llvm-svn: 171241
2012-12-29 23:47:38 +00:00
Tobias Grosser 7a2f39534f 'chmod -x' on files that do not need the executable bits
llvm-svn: 171224
2012-12-29 15:09:03 +00:00
Sebastian Pop ab9ea13f64 avoid initializing twice
llvm-svn: 170854
2012-12-21 07:27:17 +00:00
Sebastian Pop eb283143e2 do not access Info when it is NULL
llvm-svn: 170853
2012-12-21 07:27:13 +00:00
Sebastian Pop 2aa5c24a3a return -1 when polly::getNumberOfIterations returns -1
llvm-svn: 170422
2012-12-18 08:56:51 +00:00
Sebastian Pop 04c4ce32ae isl: vector code generation based on ISL ast
Original patch by Tobias Grosser, slightly modified by Sebastian Pop.

llvm-svn: 170420
2012-12-18 07:46:13 +00:00