<feed xmlns='http://www.w3.org/2005/Atom'>
<title>bcm5719-llvm/polly/lib/Analysis, 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>2020-01-06T16:37:41+00:00</updated>
<entry>
<title>[NFC] Fixes -Wrange-loop-analysis warnings</title>
<updated>2020-01-06T16:37:41+00:00</updated>
<author>
<name>Mark de Wever</name>
<email>koraq@xs4all.nl</email>
</author>
<published>2020-01-05T13:26:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=1d549cff48cd52b9967c3a70eeb61abf86444ac3'/>
<id>urn:sha1:1d549cff48cd52b9967c3a70eeb61abf86444ac3</id>
<content type='text'>
This avoids new warnings due to D68912 adds -Wrange-loop-analysis to -Wall.

Differential Revision: https://reviews.llvm.org/D72210
</content>
</entry>
<entry>
<title>[polly][Support] Un-break polly tests</title>
<updated>2020-01-01T22:29:04+00:00</updated>
<author>
<name>Alexandre Ganea</name>
<email>alexandre.ganea@ubisoft.com</email>
</author>
<published>2020-01-01T22:23:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=92b68c1937cd065a2fc44d18c1099de7da19b356'/>
<id>urn:sha1:92b68c1937cd065a2fc44d18c1099de7da19b356</id>
<content type='text'>
Previously, the polly unit tests were stuck in a infinite loop.
There was an edge case in StringRef::count() introduced by 9f6b13e5cce96066d7262d224c971d93c2724795, where an empty 'Str' would cause the function to never exit.
Also fixed usage in polly.
</content>
</entry>
<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>Fix Polly</title>
<updated>2019-10-21T15:48:42+00:00</updated>
<author>
<name>Guillaume Chatelet</name>
<email>gchatelet@google.com</email>
</author>
<published>2019-10-21T15:48:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=22755e4ea8fcb0e6f5b4fd0cbfcdff2a3dcf87a3'/>
<id>urn:sha1:22755e4ea8fcb0e6f5b4fd0cbfcdff2a3dcf87a3</id>
<content type='text'>
llvm-svn: 375421
</content>
</entry>
<entry>
<title>[ScopBuilder] Fix bug 38358 by preserving correct order of ScopStmts.</title>
<updated>2019-10-17T23:55:35+00:00</updated>
<author>
<name>Michael Kruse</name>
<email>llvm@meinersbur.de</email>
</author>
<published>2019-10-17T23:55:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=d72637f5ccc43d457bfe227ccfe2eaa23936a37e'/>
<id>urn:sha1:d72637f5ccc43d457bfe227ccfe2eaa23936a37e</id>
<content type='text'>
ScopBuilder::buildEqivClassBlockStmts creates ScopStmts for instruction
groups in basic block and inserts these ScopStmts into Scop::StmtMap,
however, as described in llvm.org/PR38358, comment #5, StmtScops are
inserted into vector ScopStmt[BB] in wrong order.  As a result,
ScopBuilder::buildSchedule creates wrong order sequence node.

Looking closer to code, it's clear there is no equivalent classes with
interleaving isOrderedInstruction(memory access) instructions after
joinOrderedInstructions.  Afterwards, ScopStmts need to be created and
inserted in the original order of memory access instructions, however,
at the moment ScopStmts are inserted in the order of leader instructions
which are probably not memory access instructions.

The fix is simple with a standalone loop scanning
isOrderedInstruction(memory access) instructions in basic block and
inserting elements into LeaderToInstList one by one.  The patch also
removes double reversing operations which are now unnecessary.

New test preserve-equiv-class-order-in-basic_block.ll is also added.

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

llvm-svn: 375192
</content>
</entry>
<entry>
<title>[Polly] Fix formatting violation. NFC.</title>
<updated>2019-10-11T03:09:24+00:00</updated>
<author>
<name>Volodymyr Sapsai</name>
<email>vsapsai@apple.com</email>
</author>
<published>2019-10-11T03:09:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=109bfb7b3293cdee1794da866596e68705afc9a2'/>
<id>urn:sha1:109bfb7b3293cdee1794da866596e68705afc9a2</id>
<content type='text'>
llvm-svn: 374504
</content>
</entry>
<entry>
<title>[Stats] Fix polly build due to change in llvm::Statistic constructor in r374490.</title>
<updated>2019-10-11T01:43:36+00:00</updated>
<author>
<name>Volodymyr Sapsai</name>
<email>vsapsai@apple.com</email>
</author>
<published>2019-10-11T01:43:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=e90cc03a85ea3b4da1462c83960aa996b359ed32'/>
<id>urn:sha1:e90cc03a85ea3b4da1462c83960aa996b359ed32</id>
<content type='text'>
llvm-svn: 374497
</content>
</entry>
<entry>
<title>[ScopBuilder] Skip getting leader when merging statements to close holes.</title>
<updated>2019-09-13T01:04:38+00:00</updated>
<author>
<name>Michael Kruse</name>
<email>llvm@meinersbur.de</email>
</author>
<published>2019-09-13T01:04:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=87baae85cdee84b43986f1d8d0fac469c7e9521b'/>
<id>urn:sha1:87baae85cdee84b43986f1d8d0fac469c7e9521b</id>
<content type='text'>
Function joinOrderedInstructions merges instructions when a leader is encountered twice.
It also notices that leaders in SeenLeaders may lose their leadership in previous merging,
and tries to handle the case using following code:

    Instruction *PrevLeader = UnionFind.getLeaderValue(SeenLeaders.back());

However, this is wrong because it always gets leader for the last element of SeenLeaders,
and I believe it's wrong even we get leader for Prev here.  As a result, Statements in cases
like the one in patch aren't merged as expected.  After investigation, I believe it's
unnecessary to get leader instruction at all.  This is based on fact: Although leaders in
SeenLeaders could lose leadership, they only lose to others in SeenLeaders, in other words,
one existing leader will be chosen as new leader of merged equivalent statements.  We can
take advantage of this and simply check if current leader equals to Prev and break merging
if it does.

The patch also adds a new test.

Patch by bin.narwal &lt;bin.narwal@gmail.com&gt;

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

llvm-svn: 371801
</content>
</entry>
<entry>
<title>[DependenceInfo] Compute WAR dependence info using ISL kills. NFC.</title>
<updated>2019-08-29T18:55:55+00:00</updated>
<author>
<name>Michael Kruse</name>
<email>llvm@meinersbur.de</email>
</author>
<published>2019-08-29T18:55:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=acbdd07de6dee3f0604c3256acedd58e15a08d5c'/>
<id>urn:sha1:acbdd07de6dee3f0604c3256acedd58e15a08d5c</id>
<content type='text'>
When reading code of Dependences::calculateDependences, I noticed that
WAR is computed specifically by buildWAR.  Given ISL now
supports "kills" in approximate dataflow analysis, this patch takes
advantage of it.

This patch also cleans up a couple lines redundant codes.

Patch by bin.narwal &lt;bin.narwal@gmail.com&gt;

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

llvm-svn: 370396
</content>
</entry>
<entry>
<title>[ScopBuilder] Remove superfluous while loop in buildDomains. NFC.</title>
<updated>2019-08-29T14:42:41+00:00</updated>
<author>
<name>Michael Kruse</name>
<email>llvm@meinersbur.de</email>
</author>
<published>2019-08-29T14:42:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=6220ce60de873c00bdf6162625e9c23d1ebecae6'/>
<id>urn:sha1:6220ce60de873c00bdf6162625e9c23d1ebecae6</id>
<content type='text'>
The while loop iterating parent loop in ScopBuilder::buildDomains is
unnecessary because either L or LD are later unused, this is a simple
patch removing it.

Patch by bin.narwal &lt;bin.narwal@gmail.com&gt;

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

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