<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/llvm/lib/Analysis/ConstraintSystem.cpp, branch users/meinersbur/flang_runtime_split-headers</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/'/>
<entry>
<title>[ConstraintElim] Remove dead code. NFC. (#118983)</title>
<updated>2024-12-20T13:20:47+00:00</updated>
<author>
<name>Yingwei Zheng</name>
<email>dtcxzyw2333@gmail.com</email>
</author>
<published>2024-12-20T13:20:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=4eba40c604c75b5c5561ffd6e009dbbb5a4f0b4b'/>
<id>4eba40c604c75b5c5561ffd6e009dbbb5a4f0b4b</id>
<content type='text'>
`R2` should be always greater than `R1` here because both `R1` and `R2` are not modified inside the loop.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
`R2` should be always greater than `R1` here because both `R1` and `R2` are not modified inside the loop.
</pre>
</div>
</content>
</entry>
<entry>
<title>[Analysis] Use range-based for loops (NFC) (#96587)</title>
<updated>2024-06-25T13:57:30+00:00</updated>
<author>
<name>Kazu Hirata</name>
<email>kazu@google.com</email>
</author>
<published>2024-06-25T13:57:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=1462605ab0a121fc2f652f178c7c13dc0179f10e'/>
<id>1462605ab0a121fc2f652f178c7c13dc0179f10e</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[ConstraintSystem] Drop left-over parentheses. (NFC)</title>
<updated>2024-01-03T13:57:52+00:00</updated>
<author>
<name>Florian Hahn</name>
<email>flo@fhahn.com</email>
</author>
<published>2024-01-03T13:57:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=3ae3e40706aad2ce92002a0da24e39d271feb42b'/>
<id>3ae3e40706aad2ce92002a0da24e39d271feb42b</id>
<content type='text'>
Remove left over redundant parentheses after 9b6127d7 as pointed out by
@nikic.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Remove left over redundant parentheses after 9b6127d7 as pointed out by
@nikic.
</pre>
</div>
</content>
</entry>
<entry>
<title>[ConstraintSystem] Remove GCD handling (NFCI).</title>
<updated>2023-12-28T15:22:23+00:00</updated>
<author>
<name>Florian Hahn</name>
<email>flo@fhahn.com</email>
</author>
<published>2023-12-28T15:22:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=9b6127d76db7b77f8a2c16191860cb30fb8da4b1'/>
<id>9b6127d76db7b77f8a2c16191860cb30fb8da4b1</id>
<content type='text'>
As @dtcxzyw pointed out in
https://github.com/llvm/llvm-project/pull/76299#pullrequestreview-1795471115
the current GCD handling is effectively a no-op, as NewGCD will always
by 1, as it is initially initialized as 1.

This patch removes the uses of GCD and its computation. This slightly
reduces compile-time [1], while not causing any binary changes (due to always
dividing by 1) in the large test-set I checked.

Division by GCD could be added in the future again and it in theory
should help reduce overflows by normalizing the coefficients (sketched
in cadbfdf8605e743e092217c54e2b837245a0a330), but this also doesn't seem
to have much (any) impact in practice.

[1] https://llvm-compile-time-tracker.com/compare.php?from=0de030e4dcb798228731ab25d4dd31df4dcaba2b&amp;to=cadbfdf8605e743e092217c54e2b837245a0a330&amp;stat=instructions:u
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
As @dtcxzyw pointed out in
https://github.com/llvm/llvm-project/pull/76299#pullrequestreview-1795471115
the current GCD handling is effectively a no-op, as NewGCD will always
by 1, as it is initially initialized as 1.

This patch removes the uses of GCD and its computation. This slightly
reduces compile-time [1], while not causing any binary changes (due to always
dividing by 1) in the large test-set I checked.

Division by GCD could be added in the future again and it in theory
should help reduce overflows by normalizing the coefficients (sketched
in cadbfdf8605e743e092217c54e2b837245a0a330), but this also doesn't seem
to have much (any) impact in practice.

[1] https://llvm-compile-time-tracker.com/compare.php?from=0de030e4dcb798228731ab25d4dd31df4dcaba2b&amp;to=cadbfdf8605e743e092217c54e2b837245a0a330&amp;stat=instructions:u
</pre>
</div>
</content>
</entry>
<entry>
<title>[ConstraintElim] Fix integer overflow in ConstraintSystem::negate.</title>
<updated>2023-04-21T15:09:46+00:00</updated>
<author>
<name>Florian Hahn</name>
<email>flo@fhahn.com</email>
</author>
<published>2023-04-21T15:09:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=0a0181dc2061fc60b309f231a5b2f6251046c552'/>
<id>0a0181dc2061fc60b309f231a5b2f6251046c552</id>
<content type='text'>
This fixes another integer overflow that was exposed by a variant of the
test case from #62226.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This fixes another integer overflow that was exposed by a variant of the
test case from #62226.
</pre>
</div>
</content>
</entry>
<entry>
<title>[ConstraintSystem] Use sparse representation for constraints. (NFC)</title>
<updated>2023-02-16T14:44:49+00:00</updated>
<author>
<name>Florian Hahn</name>
<email>flo@fhahn.com</email>
</author>
<published>2023-02-16T14:44:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=b32b7068ef8e6e9b34e7e85f5c1b76b01b28755a'/>
<id>b32b7068ef8e6e9b34e7e85f5c1b76b01b28755a</id>
<content type='text'>
Update ConstraintSystem to use a sparse representation for entries in a
row. Most rows only contain a small number of variables, so the sparse
representation can result in significant speedups.

For a large test case from D135915, it halves the time spent in
ConstraintElimination.

To ensure this returns the same results as the old implementation in all
cases, I built a large set of projects with an extra assertion that it
produces the same result as the old implementation.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Update ConstraintSystem to use a sparse representation for entries in a
row. Most rows only contain a small number of variables, so the sparse
representation can result in significant speedups.

For a large test case from D135915, it halves the time spent in
ConstraintElimination.

To ensure this returns the same results as the old implementation in all
cases, I built a large set of projects with an extra assertion that it
produces the same result as the old implementation.
</pre>
</div>
</content>
</entry>
<entry>
<title>[ConstriantElimination] Add NODEBUG condition around `dump`</title>
<updated>2023-02-15T18:53:22+00:00</updated>
<author>
<name>Zain Jaffal</name>
<email>z_jaffal@apple.com</email>
</author>
<published>2023-02-15T17:43:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=df2ea2fc2839f975d67cb89020e62f5a95c677a2'/>
<id>df2ea2fc2839f975d67cb89020e62f5a95c677a2</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Recommit "[ConstraintElimination] Change debug output to display variable names."</title>
<updated>2023-02-15T16:38:35+00:00</updated>
<author>
<name>Zain Jaffal</name>
<email>z_jaffal@apple.com</email>
</author>
<published>2023-02-15T15:41:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=07f93d8c2cc427e851dec710a866c2605ce5f884'/>
<id>07f93d8c2cc427e851dec710a866c2605ce5f884</id>
<content type='text'>
This reverts commit 02ae7e72b3f00969eeb579a2b4346082827f0b35.

include Value.h in ConstraintSystem.h
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This reverts commit 02ae7e72b3f00969eeb579a2b4346082827f0b35.

include Value.h in ConstraintSystem.h
</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "Recommit "[ConstraintElimination] Change debug output to display variable names.""</title>
<updated>2023-02-15T15:36:44+00:00</updated>
<author>
<name>Nikita Popov</name>
<email>npopov@redhat.com</email>
</author>
<published>2023-02-15T15:36:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=02ae7e72b3f00969eeb579a2b4346082827f0b35'/>
<id>02ae7e72b3f00969eeb579a2b4346082827f0b35</id>
<content type='text'>
This reverts commit 2a2a6bfcfe8e62886542cb673ac8df349cf26499.

This causes build failures:

    /home/npopov/repos/llvm-project/llvm/lib/Analysis/ConstraintSystem.cpp: In member function ‘llvm::SmallVector&lt;std::__cxx11::basic_string&lt;char&gt; &gt; llvm::ConstraintSystem::getVarNamesList() const’:
    /home/npopov/repos/llvm-project/llvm/lib/Analysis/ConstraintSystem.cpp:118:10: error: invalid use of incomplete type ‘class llvm::Value’
      118 |     if (V-&gt;getName().empty())
          |          ^~
    In file included from /home/npopov/repos/llvm-project/llvm/lib/Analysis/ConstraintSystem.cpp:9:
    /home/npopov/repos/llvm-project/llvm/include/llvm/Analysis/ConstraintSystem.h:21:7: note: forward declaration of ‘class llvm::Value’
       21 | class Value;
          |       ^~~~~
    /home/npopov/repos/llvm-project/llvm/lib/Analysis/ConstraintSystem.cpp:119:22: error: invalid use of incomplete type ‘class llvm::Value’
      119 |       OperandName = V-&gt;getNameOrAsOperand();
          |                      ^~
    /home/npopov/repos/llvm-project/llvm/include/llvm/Analysis/ConstraintSystem.h:21:7: note: forward declaration of ‘class llvm::Value’
       21 | class Value;
          |       ^~~~~
    /home/npopov/repos/llvm-project/llvm/lib/Analysis/ConstraintSystem.cpp:121:41: error: invalid use of incomplete type ‘class llvm::Value’
      121 |       OperandName = std::string("%") + V-&gt;getName().str();
          |                                         ^~
    /home/npopov/repos/llvm-project/llvm/include/llvm/Analysis/ConstraintSystem.h:21:7: note: forward declaration of ‘class llvm::Value’
       21 | class Value;
          |       ^~~~~
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This reverts commit 2a2a6bfcfe8e62886542cb673ac8df349cf26499.

This causes build failures:

    /home/npopov/repos/llvm-project/llvm/lib/Analysis/ConstraintSystem.cpp: In member function ‘llvm::SmallVector&lt;std::__cxx11::basic_string&lt;char&gt; &gt; llvm::ConstraintSystem::getVarNamesList() const’:
    /home/npopov/repos/llvm-project/llvm/lib/Analysis/ConstraintSystem.cpp:118:10: error: invalid use of incomplete type ‘class llvm::Value’
      118 |     if (V-&gt;getName().empty())
          |          ^~
    In file included from /home/npopov/repos/llvm-project/llvm/lib/Analysis/ConstraintSystem.cpp:9:
    /home/npopov/repos/llvm-project/llvm/include/llvm/Analysis/ConstraintSystem.h:21:7: note: forward declaration of ‘class llvm::Value’
       21 | class Value;
          |       ^~~~~
    /home/npopov/repos/llvm-project/llvm/lib/Analysis/ConstraintSystem.cpp:119:22: error: invalid use of incomplete type ‘class llvm::Value’
      119 |       OperandName = V-&gt;getNameOrAsOperand();
          |                      ^~
    /home/npopov/repos/llvm-project/llvm/include/llvm/Analysis/ConstraintSystem.h:21:7: note: forward declaration of ‘class llvm::Value’
       21 | class Value;
          |       ^~~~~
    /home/npopov/repos/llvm-project/llvm/lib/Analysis/ConstraintSystem.cpp:121:41: error: invalid use of incomplete type ‘class llvm::Value’
      121 |       OperandName = std::string("%") + V-&gt;getName().str();
          |                                         ^~
    /home/npopov/repos/llvm-project/llvm/include/llvm/Analysis/ConstraintSystem.h:21:7: note: forward declaration of ‘class llvm::Value’
       21 | class Value;
          |       ^~~~~
</pre>
</div>
</content>
</entry>
<entry>
<title>Recommit "[ConstraintElimination] Change debug output to display variable names."</title>
<updated>2023-02-15T15:23:53+00:00</updated>
<author>
<name>Zain Jaffal</name>
<email>z_jaffal@apple.com</email>
</author>
<published>2023-02-15T15:22:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=2a2a6bfcfe8e62886542cb673ac8df349cf26499'/>
<id>2a2a6bfcfe8e62886542cb673ac8df349cf26499</id>
<content type='text'>
This reverts commit 62d0e1a8541f93dfbf66d982f66da32676df2df7.

remove `dumpWithNames` function
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This reverts commit 62d0e1a8541f93dfbf66d982f66da32676df2df7.

remove `dumpWithNames` function
</pre>
</div>
</content>
</entry>
</feed>
