<feed xmlns='http://www.w3.org/2005/Atom'>
<title>bcm5719-llvm/polly/lib/Transform, branch meklort-10.0.1</title>
<subtitle>Project Ortega BCM5719 LLVM</subtitle>
<id>https://git.raptorcs.com/git/bcm5719-llvm/atom?h=meklort-10.0.1</id>
<link rel='self' href='https://git.raptorcs.com/git/bcm5719-llvm/atom?h=meklort-10.0.1'/>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/'/>
<updated>2019-11-14T00:34:37+00:00</updated>
<entry>
<title>Sink all InitializePasses.h includes</title>
<updated>2019-11-14T00:34:37+00:00</updated>
<author>
<name>Reid Kleckner</name>
<email>rnk@google.com</email>
</author>
<published>2019-11-13T21:15:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=05da2fe52162c80dfa18aedf70cf73cb11201811'/>
<id>urn:sha1:05da2fe52162c80dfa18aedf70cf73cb11201811</id>
<content type='text'>
This file lists every pass in LLVM, and is included by Pass.h, which is
very popular. Every time we add, remove, or rename a pass in LLVM, it
caused lots of recompilation.

I found this fact by looking at this table, which is sorted by the
number of times a file was changed over the last 100,000 git commits
multiplied by the number of object files that depend on it in the
current checkout:
  recompiles    touches affected_files  header
  342380        95      3604    llvm/include/llvm/ADT/STLExtras.h
  314730        234     1345    llvm/include/llvm/InitializePasses.h
  307036        118     2602    llvm/include/llvm/ADT/APInt.h
  213049        59      3611    llvm/include/llvm/Support/MathExtras.h
  170422        47      3626    llvm/include/llvm/Support/Compiler.h
  162225        45      3605    llvm/include/llvm/ADT/Optional.h
  158319        63      2513    llvm/include/llvm/ADT/Triple.h
  140322        39      3598    llvm/include/llvm/ADT/StringRef.h
  137647        59      2333    llvm/include/llvm/Support/Error.h
  131619        73      1803    llvm/include/llvm/Support/FileSystem.h

Before this change, touching InitializePasses.h would cause 1345 files
to recompile. After this change, touching it only causes 550 compiles in
an incremental rebuild.

Reviewers: bkramer, asbirlea, bollu, jdoerfert

Differential Revision: https://reviews.llvm.org/D70211
</content>
</entry>
<entry>
<title>[Stats] More polly fixes following llvm::Statistic changes in r374490.</title>
<updated>2019-10-11T02:42:16+00:00</updated>
<author>
<name>Volodymyr Sapsai</name>
<email>vsapsai@apple.com</email>
</author>
<published>2019-10-11T02:42:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=126158f096ca07588ca52dff0806a4aeb3eef195'/>
<id>urn:sha1:126158f096ca07588ca52dff0806a4aeb3eef195</id>
<content type='text'>
llvm-svn: 374501
</content>
</entry>
<entry>
<title>[Polly] Fix lib/Transform/ScheduleOptimizer.cpp compilation on Solaris</title>
<updated>2019-09-13T08:45:06+00:00</updated>
<author>
<name>Rainer Orth</name>
<email>ro@gcc.gnu.org</email>
</author>
<published>2019-09-13T08:45:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=570c50aa922e39c91266aba0b68005cdb8aaebb4'/>
<id>urn:sha1:570c50aa922e39c91266aba0b68005cdb8aaebb4</id>
<content type='text'>
lib/Transform/ScheduleOptimizer.cpp fails to compile on Solaris, both on the 9.x
branch (first noticed when running test-release.sh without -no-polly) and on trunk:

  /var/llvm/llvm-9.0.0-rc4/rc4/llvm.src/tools/polly/lib/Transform/ScheduleOptimizer.cpp: In function ‘MicroKernelParamsTy getMicroKernelParams(const llvm::TargetTransformInfo*, polly::MatMulInfoTy)’:
  /var/llvm/llvm-9.0.0-rc4/rc4/llvm.src/tools/polly/lib/Transform/ScheduleOptimizer.cpp:914:62: error: call of overloaded ‘sqrt(long unsigned int)’ is ambiguous
    914 |       ceil(sqrt(Nvec * LatencyVectorFma * ThroughputVectorFma) / Nvec) * Nvec;
        |                                                              ^
  In file included from /usr/gcc/9/lib/gcc/x86_64-pc-solaris2.11/9.1.0/include-fixed/math.h:24,
                   from /usr/gcc/9/include/c++/9.1.0/cmath:45,
                   from /var/llvm/llvm-9.0.0-rc4/rc4/llvm.src/include/llvm-c/DataTypes.h:28,
                   from /var/llvm/llvm-9.0.0-rc4/rc4/llvm.src/include/llvm/Support/DataTypes.h:16,
                   from /var/llvm/llvm-9.0.0-rc4/rc4/llvm.src/include/llvm/ADT/Hashing.h:47,
                   from /var/llvm/llvm-9.0.0-rc4/rc4/llvm.src/include/llvm/ADT/ArrayRef.h:12,
                   from /var/llvm/llvm-9.0.0-rc4/rc4/llvm.src/tools/polly/include/polly/ScheduleOptimizer.h:12,
                   from /var/llvm/llvm-9.0.0-rc4/rc4/llvm.src/tools/polly/lib/Transform/ScheduleOptimizer.cpp:48:
  /usr/gcc/9/lib/gcc/x86_64-pc-solaris2.11/9.1.0/include-fixed/iso/math_iso.h:220:21: note: candidate: ‘long double std::sqrt(long double)’
    220 |  inline long double sqrt(long double __X) { return __sqrtl(__X); }
        |                     ^~~~
  /usr/gcc/9/lib/gcc/x86_64-pc-solaris2.11/9.1.0/include-fixed/iso/math_iso.h:186:15:
note: candidate: ‘float std::sqrt(float)’
    186 |  inline float sqrt(float __X) { return __sqrtf(__X); }
        |               ^~~~
  /usr/gcc/9/lib/gcc/x86_64-pc-solaris2.11/9.1.0/include-fixed/iso/math_iso.h:74:15:
note: candidate: ‘double std::sqrt(double)’
     74 | extern double sqrt __P((double));
        |               ^~~~
  /var/llvm/llvm-9.0.0-rc4/rc4/llvm.src/tools/polly/lib/Transform/ScheduleOptimizer.cpp:915:67:
error: call of overloaded ‘ceil(long unsigned int)’ is ambiguous
    915 |   int Mr = ceil(Nvec * LatencyVectorFma * ThroughputVectorFma / Nr);
        |                                                                   ^
  In file included from /usr/gcc/9/lib/gcc/x86_64-pc-solaris2.11/9.1.0/include-fixed/math.h:24,
                   from /usr/gcc/9/include/c++/9.1.0/cmath:45,
                   from /var/llvm/llvm-9.0.0-rc4/rc4/llvm.src/include/llvm-c/DataTypes.h:28,
                   from /var/llvm/llvm-9.0.0-rc4/rc4/llvm.src/include/llvm/Support/DataTypes.h:16,
                   from /var/llvm/llvm-9.0.0-rc4/rc4/llvm.src/include/llvm/ADT/Hashing.h:47,
                   from /var/llvm/llvm-9.0.0-rc4/rc4/llvm.src/include/llvm/ADT/ArrayRef.h:12,
                   from /var/llvm/llvm-9.0.0-rc4/rc4/llvm.src/tools/polly/include/polly/ScheduleOptimizer.h:12,
                   from /var/llvm/llvm-9.0.0-rc4/rc4/llvm.src/tools/polly/lib/Transform/ScheduleOptimizer.cpp:48:
  /usr/gcc/9/lib/gcc/x86_64-pc-solaris2.11/9.1.0/include-fixed/iso/math_iso.h:196:21: note: candidate: ‘long double std::ceil(long double)’
    196 |  inline long double ceil(long double __X) { return __ceill(__X); }
        |                     ^~~~
  /usr/gcc/9/lib/gcc/x86_64-pc-solaris2.11/9.1.0/include-fixed/iso/math_iso.h:160:15:
note: candidate: ‘float std::ceil(float)’
    160 |  inline float ceil(float __X) { return __ceilf(__X); }
        |               ^~~~
  /usr/gcc/9/lib/gcc/x86_64-pc-solaris2.11/9.1.0/include-fixed/iso/math_iso.h:76:15:
note: candidate: ‘double std::ceil(double)’
     76 | extern double ceil __P((double));
        |               ^~~~

Fixed by adding casts to disambiguate, checked that it now compiles on both 
amd64-pc-solaris2.11 and sparcv9-sun-solaris2.11 and on x86_64-pc-linux-gnu.

Differential Revision: https://reviews.llvm.org/D67442

llvm-svn: 371825
</content>
</entry>
<entry>
<title>[Polly] Migrate llvm::make_unique to std::make_unique</title>
<updated>2019-08-14T22:28:12+00:00</updated>
<author>
<name>Jonas Devlieghere</name>
<email>jonas@devlieghere.com</email>
</author>
<published>2019-08-14T22:28:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=736259e3428d36f8024e6b08e4a95167f313d958'/>
<id>urn:sha1:736259e3428d36f8024e6b08e4a95167f313d958</id>
<content type='text'>
Now that we've moved to C++14, we no longer need the llvm::make_unique
implementation from STLExtras.h. This patch is a mechanical replacement
of (hopefully) all the llvm::make_unique instances across the monorepo.

Differential revision: https://reviews.llvm.org/D66259

llvm-svn: 368935
</content>
</entry>
<entry>
<title>[ScopInliner] Register FunctionAnalysisManagerModuleProxy.</title>
<updated>2019-06-17T16:01:40+00:00</updated>
<author>
<name>Michael Kruse</name>
<email>llvm@meinersbur.de</email>
</author>
<published>2019-06-17T16:01:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=77bc3b65424afc42031a0859c91154acdc54feaa'/>
<id>urn:sha1:77bc3b65424afc42031a0859c91154acdc54feaa</id>
<content type='text'>
FunctionAnalysisManagerModuleProxy started to be used by the
AlwaysInlinerPass in r363287 and therefore had to be registered in the
New PassManager.

Should fix the regression tests
    Polly :: ScopInliner/invariant-load-func.ll
    Polly :: ScopInliner/simple-inline-loop.ll

llvm-svn: 363572
</content>
</entry>
<entry>
<title>[ScheduleTreeTransform] Silence compiler warning. NFC.</title>
<updated>2019-06-06T17:15:36+00:00</updated>
<author>
<name>Michael Kruse</name>
<email>llvm@meinersbur.de</email>
</author>
<published>2019-06-06T17:15:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=bd9e810b23b7907a133664a64407df3993f2426a'/>
<id>urn:sha1:bd9e810b23b7907a133664a64407df3993f2426a</id>
<content type='text'>
Use size_t for position which is the return type type ArrayRef::size()
it is compared to.

llvm-svn: 362724
</content>
</entry>
<entry>
<title>[ScheduleOptimizer] Hoist extension nodes after schedule optimization.</title>
<updated>2019-05-31T19:26:57+00:00</updated>
<author>
<name>Michael Kruse</name>
<email>llvm@meinersbur.de</email>
</author>
<published>2019-05-31T19:26:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=aa8a976174c7ac08676bbc7bb647f6bc0efd2e72'/>
<id>urn:sha1:aa8a976174c7ac08676bbc7bb647f6bc0efd2e72</id>
<content type='text'>
Extension nodes make schedule trees are less flexible: Many operations,
such as rescheduling, do not work on such schedule trees with extension.
As such, some functionality such as determining parallel loops in isl's
AST are disabled.

Currently, only the pattern-matching generalized matrix-matrix
multiplication optimization adds extension nodes (to add copy-in
statements).

This patch removes all extension nodes as the last step of the schedule
optimization by hoisting the extension node's added domain up to the
root domain node. All following passes can assume that schedule trees
work without restrictions, including the parallelism test. Mark the
outermost loop of the optimized matrix-matrix multiplication as parallel
such that -polly-parallel is able to parallelize that loop.

Differential Revision: https://reviews.llvm.org/D58202

llvm-svn: 362257
</content>
</entry>
<entry>
<title>[DeLICM] Use polly::singleton to allow empty result.</title>
<updated>2019-05-21T19:18:26+00:00</updated>
<author>
<name>Michael Kruse</name>
<email>llvm@meinersbur.de</email>
</author>
<published>2019-05-21T19:18:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=467069688d0a0a7c007994a81f4cee7521a413d5'/>
<id>urn:sha1:467069688d0a0a7c007994a81f4cee7521a413d5</id>
<content type='text'>
isl_map_from_union_map cannot determine the map's space if the union_map
is empty. polly::singleton was designed for this case. We pass the
expected map space to avoid crashing in isl_map_from_union_map.

This fixes an issue found by the aosp buildbot. Thanks to Eli Friedman
for the reproducer.

llvm-svn: 361290
</content>
</entry>
<entry>
<title>[ZoneAlgo] Fix PHI inconsistency in invalid contexts.</title>
<updated>2019-05-10T18:38:13+00:00</updated>
<author>
<name>Michael Kruse</name>
<email>llvm@meinersbur.de</email>
</author>
<published>2019-05-10T18:38:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=2698390c68b5af71d8d46854148115084b8b24a5'/>
<id>urn:sha1:2698390c68b5af71d8d46854148115084b8b24a5</id>
<content type='text'>
PHI nodes (reads) could point to multiple instances of predecessor
blocks (PHI writes) when in an invalid context. Fix by removing PHI
instances that are in an invalid or ouside assumed context.

This fixes llvm.org/PR41656.

llvm-svn: 360454
</content>
</entry>
<entry>
<title>Apply include-what-you-use #include removal suggestions. NFC.</title>
<updated>2019-03-28T20:19:49+00:00</updated>
<author>
<name>Michael Kruse</name>
<email>llvm@meinersbur.de</email>
</author>
<published>2019-03-28T20:19:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=031bb1655664ab3b5e702d1838728359eacb3364'/>
<id>urn:sha1:031bb1655664ab3b5e702d1838728359eacb3364</id>
<content type='text'>
This removes unused includes (and forward declarations) as
suggested by include-what-you-use. If a transitive include of a removed
include is required to compile a file, I added the required header (or
forward declaration if suggested by include-what-you-use).

This should reduce compilation time and reduce the number of iterative
recompilations when a header was changed.

llvm-svn: 357209
</content>
</entry>
</feed>
