lp:~pali/llvm/polly-trunk

Created by Pali on 2014-04-11 and last modified on 2018-10-18
Get this branch:
bzr branch lp:~pali/llvm/polly-trunk

Branch merges

Related bugs

Related blueprints

Branch information

Owner:
Pali
Project:
LLVM
Status:
Development

Import details

Import Status: Reviewed

This branch is an import of the Subversion branch from http://llvm.org/svn/llvm-project/polly/trunk.

The next import is scheduled to run in 5 hours.

Last successful import was 50 seconds ago.

Import started 1 minute ago on alnitak and finished 50 seconds ago taking 25 seconds — see the log
Import started 6 hours ago on alnitak and finished 6 hours ago taking 20 seconds — see the log
Import started 12 hours ago on izar and finished 12 hours ago taking 20 seconds — see the log
Import started 18 hours ago on izar and finished 18 hours ago taking 25 seconds — see the log
Import started on 2018-10-18 on alnitak and finished on 2018-10-18 taking 40 seconds — see the log
Import started on 2018-10-18 on alnitak and finished on 2018-10-18 taking 25 seconds — see the log
Import started on 2018-10-17 on izar and finished on 2018-10-17 taking 20 seconds — see the log
Import started on 2018-10-17 on alnitak and finished on 2018-10-17 taking 40 seconds — see the log
Import started on 2018-10-17 on izar and finished on 2018-10-17 taking 20 seconds — see the log
Import started on 2018-10-17 on alnitak and finished on 2018-10-17 taking 25 seconds — see the log

Recent revisions

3871. By chandlerc on 2018-10-18

[TI removal] Generically discuss terminators rather than use the soon to
vanish subclass name.

3870. By ttheodor on 2018-10-17

Fix broken formatting caused by test commit

3869. By ttheodor on 2018-10-17

Test commit

3868. By chandlerc on 2018-10-15

[TI removal] Make `getTerminator()` return a generic `Instruction`.

This removes the primary remaining API producing `TerminatorInst` which
will reduce the rate at which code is introduced trying to use it and
generally make it much easier to remove the remaining APIs across the
codebase.

Also clean up some of the stragglers that the previous mechanical update
of variables missed.

Users of LLVM and out-of-tree code generally will need to update any
explicit variable types to handle this. Replacing `TerminatorInst` with
`Instruction` (or `auto`) almost always works. Most of these edits were
made in prior commits using the perl one-liner:
```
perl -i -ple 's/TerminatorInst(\b.* = .*getTerminator\(\))/Instruction\1/g'
```

This also my break some rare use cases where people overload for both
`Instruction` and `TerminatorInst`, but these should be easily fixed by
removing the `TerminatorInst` overload.

3867. By zturner on 2018-10-12

Fix another error related to YAML quoting.

This one occured in polly, which I didn't build / test the first
time so I didn't catch it.

3866. By meinersbur on 2018-09-27

[IslAst] Fix InParallelFor nesting.

IslAst could mark two nested outer loops as "OutermostParallel". It
caused that the code generator tried to OpenMP-parallelize both loops,
which it is not prepared loop.

It was because the recursive AST build algorithm managed a flag
"InParallelFor" to ensure that no nested loop is also marked as
"OutermostParallel". Unfortunatetly the same flag was used by nodes
marked as SIMD, and reset to false after the SIMD node. Since loops can
be marked as SIMD inside "OutermostParallel" loops, the recursive
algorithm again tried to mark loops as "OutermostParellel" although
still nested inside another "OutermostParallel" loop.

The fix exposed another bug: The function "astScheduleDimIsParallel" was
only called when a loop was potentially "OutermostParallel" or
"InnermostParallel", but as a side-effect also determines the minimum
dependence distance. Hence, changing when we need to know whether a loop
is "OutermostParallel" also changed which loop was annotated with
"#pragma minimal dependence distance".

Moreover, some complex condition linked with "InParallelFor" determined
whether a loop should be an "InnermostParallel" loop. It missed some
situations where it would not use mark as such although being inside an
SIMD mark node, and therefore not be annotated using "#pragma simd".

The changes in particular:

1. Split the "InParallelFor" flag into an "InParallelFor" and an
   "InSIMD" flag.

2. Unconditionally call "astScheduleDimIsParallel" for its side-effects
   and store the result in "InParallel" for later use.

3. Simplify the condition when a loop is "InnermostParallel".

Fixes llvm.org/PR33153 and llvm.org/PR38073.

3865. By meinersbur on 2018-09-26

[doc] Fix HowToManuallyUseTheIndividualPiecesOfPolly

Also remove compiled binaries.

3864. By meinersbur on 2018-09-26

Move www/experiments to docs/experiments

3863. By sylvestre on 2018-09-21

fix the scan-build urls

3862. By efriedma on 2018-09-11

[ScopDetection] Use addUnknown for calls in the AliasSetTracker.

The general-purpose add() now sometimes adds unexpected loop-variant
pointers to the AliasSetTracker, so certain loops would be rejected with
-polly-allow-modref-calls. Use addUnknown() instead, which has the old
behavior.

I'm not completely convinced the resulting behavior is actually
correct: ScopDetection::isValidAccess seems to mostly ignore
"unknown" instructions in the AliasSetTracker. But it's not any worse
than what was happening before.

Committing without pre-commit review to unbreak the buildbots; the
following tests were failing:

test/ScopInfo/mod_ref_access_pointee_arguments.ll
test/ScopInfo/mod_ref_read_pointee_arguments.ll
test/ScopInfo/multidim_2d_with_modref_call_2.ll

Branch metadata

Branch format:
Branch format 7
Repository format:
Bazaar repository format 2a (needs bzr 1.16 or later)
This branch contains Public information 
Everyone can see this information.

Subscribers

No subscribers.