Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Symbolize multiple LHS consts #807

Draft
wants to merge 165 commits into
base: main
Choose a base branch
from
Draft
Changes from 1 commit
Commits
Show all changes
165 commits
Select commit Hold shift + click to select a range
63c8fc3
Generalization tool
manasij7479 Dec 1, 2020
b06aef9
Generalize constants
manasij7479 Dec 2, 2020
f589d86
Symbolize multiple LHS consts
manasij7479 Dec 2, 2020
8b3b409
temp commit
manasij7479 Jan 5, 2021
0b4d2a1
temp commit
manasij7479 Jan 7, 2021
25fe3f1
temp commit
manasij7479 Jan 8, 2021
8b3aea4
temp
manasij7479 Jan 13, 2021
ab9a314
doc: add link to arxiv paper (#811)
monperrus Apr 28, 2021
9342448
Misc fixes to make Souper work better with SPEC 2017 (#813)
manasij7479 Apr 28, 2021
30806dd
Keep up with alive2 API (#814)
manasij7479 May 2, 2021
1494a8b
update to llvm 12, update to latest Z3, fixup fragile tests (#815)
regehr May 2, 2021
02a10f2
Remove references to master (#816)
regehr May 2, 2021
7eabcbf
use llvm-mca as a cost model -- this implements that, but the work is…
regehr May 3, 2021
a1fb892
remove go stuff (#818)
regehr May 4, 2021
3a7aa1a
GCC compiled Souper failed to synthsize constants for some range synt…
zhengyang92 May 4, 2021
28c88d8
cleanup dockerfile (#820)
zhengyang92 May 5, 2021
08bd23c
Switch to using assume for encoding PCs (#822)
manasij7479 May 19, 2021
081d878
fix issue 821 (#823)
regehr May 19, 2021
e888ac1
Increase alive2 solver timeout to a minute (#826)
manasij7479 May 19, 2021
8220bdf
a few random cleanups (#825)
regehr May 19, 2021
1af2916
oops, didn't notice a problem caused by hiredis bump (#828)
regehr May 20, 2021
0bb88f2
Make constant shrinking optional, defaulting to false (#827)
manasij7479 May 20, 2021
ac139a2
new verison of patched LLVM 12 and Z3 (#829)
regehr May 25, 2021
73ca4ad
Mask out not-demanded bits for concrete interpreter (#830)
manasij7479 May 26, 2021
6cc0615
Generalization tool
manasij7479 Dec 1, 2020
a098f3c
temp
manasij7479 May 26, 2021
4b785db
foo
manasij7479 Sep 15, 2021
829ac75
foo
manasij7479 Sep 27, 2021
2beedf6
foo
manasij7479 Oct 22, 2021
ef23122
foo
manasij7479 Oct 26, 2021
1b216ff
foo
manasij7479 Oct 6, 2021
e41801e
foo
manasij7479 Nov 3, 2021
5fa37a1
foo
manasij7479 Nov 19, 2021
b5de911
foo
manasij7479 Dec 1, 2021
e3a37b4
foo
manasij7479 Dec 1, 2021
a3e247c
foo
manasij7479 Dec 2, 2021
4c0b098
foo
manasij7479 Dec 7, 2021
9545924
souper-combine pass template
manasij7479 Dec 4, 2020
a4341e2
foo
manasij7479 Dec 17, 2021
52a8550
foo
manasij7479 Dec 22, 2021
ea1ad8f
foo
manasij7479 Jan 10, 2022
3d92892
foo
manasij7479 Jan 12, 2022
b4461ec
foo
manasij7479 Jan 12, 2022
ae03d16
foo
manasij7479 Jun 8, 2022
d7e63c8
foo
manasij7479 Jan 17, 2022
b4e4ce4
foo
manasij7479 Feb 14, 2022
44889b0
foo
manasij7479 Feb 17, 2022
a77319c
foo
manasij7479 Feb 19, 2022
7f9d726
foo
manasij7479 Feb 22, 2022
aa52e36
foo
manasij7479 Feb 23, 2022
3cbb0d6
foo
manasij7479 Feb 23, 2022
3eba869
foo
manasij7479 Feb 25, 2022
0e6cfe7
foo
manasij7479 Feb 25, 2022
3d6c39d
foo
manasij7479 Mar 15, 2022
6a014f7
foo
manasij7479 Mar 24, 2022
bd586e1
foo
manasij7479 Mar 24, 2022
610e23b
foo
manasij7479 Apr 5, 2022
344d87d
foo
manasij7479 Apr 5, 2022
16f1bdb
Fix improveMustDemandedBits
manasij7479 May 10, 2020
d677ba9
foo
manasij7479 Apr 6, 2022
c3ffe7e
foo
manasij7479 Apr 6, 2022
ad0edad
foo
manasij7479 Apr 19, 2022
c418740
foo
manasij7479 Apr 22, 2022
31d1f79
Fix faulty clone
manasij7479 May 9, 2022
8867113
foo
manasij7479 Jun 8, 2022
6235802
foo
manasij7479 Jun 9, 2022
ef65740
foo
manasij7479 Jun 23, 2022
a9e4d2c
foo
manasij7479 Jun 23, 2022
87ee113
foo
manasij7479 Jun 28, 2022
469546f
foo
manasij7479 Jun 28, 2022
44ef0bb
foo
manasij7479 Jun 29, 2022
bfc06fd
foo
manasij7479 Jun 30, 2022
e05249e
foo
manasij7479 Jun 30, 2022
567d7e7
foo
manasij7479 Jul 7, 2022
5cae24b
foo
manasij7479 Jul 20, 2022
3240b52
foo
manasij7479 Jul 21, 2022
9a9d968
foo
manasij7479 Jul 28, 2022
24ff6d9
foo
manasij7479 Jul 28, 2022
45b50af
foo
manasij7479 Jul 30, 2022
1b79eaa
foo
manasij7479 Jul 30, 2022
2abddb9
foo
manasij7479 Aug 2, 2022
fd6705b
foo
manasij7479 Aug 2, 2022
f34f0cf
foo
manasij7479 Aug 4, 2022
bbcae4d
foo
manasij7479 Aug 4, 2022
18d2f50
foo
manasij7479 Sep 7, 2022
5cd7682
foo
manasij7479 Sep 8, 2022
7a3c8a6
foo
manasij7479 Sep 13, 2022
4ca8672
foo
manasij7479 Sep 21, 2022
31a6cf9
foo
manasij7479 Sep 21, 2022
e3643dc
foo
manasij7479 Oct 21, 2022
fb9ee5a
foo
manasij7479 Oct 21, 2022
cede61d
foo
manasij7479 Oct 22, 2022
73cbeaf
foo
manasij7479 Oct 22, 2022
2d2f64f
foo
manasij7479 Oct 22, 2022
1cd3900
foo
manasij7479 Oct 22, 2022
37f5d27
foo
manasij7479 Oct 23, 2022
fe69f41
foo
manasij7479 Oct 23, 2022
af0b467
foo
manasij7479 Oct 24, 2022
e17e17a
foo
manasij7479 Oct 25, 2022
73a67f9
foo
manasij7479 Oct 25, 2022
51ef4fd
foo
manasij7479 Oct 25, 2022
0efd8c6
foo
manasij7479 Oct 26, 2022
0d45d56
foo
manasij7479 Oct 26, 2022
11b616f
foo
manasij7479 Oct 26, 2022
1930c3b
foo
manasij7479 Oct 26, 2022
e74d1bf
foo
manasij7479 Oct 26, 2022
c16f329
foo
manasij7479 Oct 26, 2022
41582bb
foo
manasij7479 Oct 26, 2022
7759e2a
foo
manasij7479 Oct 29, 2022
77fb1de
foo
manasij7479 Oct 29, 2022
de6f256
foo
manasij7479 Oct 30, 2022
a92a8b7
foo
manasij7479 Nov 1, 2022
24d3c11
foo
manasij7479 Nov 1, 2022
4cd1609
foo
manasij7479 Nov 1, 2022
98cf7bd
foo
manasij7479 Nov 1, 2022
40e0182
foo
manasij7479 Nov 2, 2022
c1c6d56
foo
manasij7479 Nov 2, 2022
bccba9c
foo
manasij7479 Nov 4, 2022
b6fc1d4
foo
manasij7479 Nov 4, 2022
46ae8ff
foo
manasij7479 Nov 5, 2022
b2acfee
foo
manasij7479 Nov 5, 2022
e526624
foo
manasij7479 Nov 6, 2022
5da5ad9
foo
manasij7479 Nov 7, 2022
e692282
foo
manasij7479 Nov 8, 2022
da1903e
foo
manasij7479 Nov 9, 2022
651a9b0
Optimization harvesting
manasij7479 Jan 3, 2023
a5e0d57
better printing
manasij7479 Jan 4, 2023
b5c686b
More generalization
manasij7479 Jan 25, 2023
227cb3f
Remove redundant code
manasij7479 Jan 31, 2023
e864d58
Width Independence and more relations
manasij7479 Feb 16, 2023
4853b63
foo
manasij7479 Feb 16, 2023
b38b636
foo
manasij7479 Feb 17, 2023
bede2cb
foo
manasij7479 Feb 18, 2023
8693f1b
foo
manasij7479 Feb 19, 2023
13468f2
foo
manasij7479 Feb 21, 2023
af8c9c7
foo
manasij7479 Feb 21, 2023
794e425
foo
manasij7479 Feb 21, 2023
27dc108
foo
manasij7479 Feb 23, 2023
29d9d0c
foo
manasij7479 Mar 2, 2023
1e18cf3
foo
manasij7479 Mar 9, 2023
ec0f968
foo
manasij7479 Mar 9, 2023
cf5d258
foo
manasij7479 Mar 15, 2023
f45da2b
foo
manasij7479 Mar 16, 2023
c3c4b88
foo
manasij7479 Mar 17, 2023
2316ed5
foo
manasij7479 Mar 18, 2023
d0d19ee
foo
manasij7479 Mar 18, 2023
b440ccc
foo
manasij7479 Mar 20, 2023
d376a99
foo
manasij7479 Mar 21, 2023
10fa8fb
foo
manasij7479 Mar 22, 2023
6d30a9c
foo
manasij7479 Mar 22, 2023
b703146
foo
manasij7479 Apr 3, 2023
4ee7884
foo
manasij7479 Apr 3, 2023
c51ea71
foo
manasij7479 Apr 3, 2023
ed9f98f
foo
manasij7479 Apr 3, 2023
17a6e06
foo
manasij7479 Apr 4, 2023
09991ef
foo
manasij7479 Apr 4, 2023
af84b4a
Revert "foo"
manasij7479 Apr 4, 2023
7beb5ba
foo
manasij7479 Apr 4, 2023
db262b9
foo
manasij7479 Apr 5, 2023
94f86ac
foo
manasij7479 Apr 5, 2023
1cbfa05
foo
manasij7479 Apr 5, 2023
4d9d1c6
foo
manasij7479 Apr 9, 2023
84fe39a
foo
manasij7479 Apr 9, 2023
f1c31c9
foo
manasij7479 Apr 11, 2023
43daca7
Fix width jump
manasij7479 Apr 11, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
foo
manasij7479 committed Mar 9, 2023
commit ec0f96866abe7dd91ea69c7926d368ac49005f99
24 changes: 12 additions & 12 deletions tools/generalize.cpp
Original file line number Diff line number Diff line change
@@ -314,21 +314,21 @@ std::vector<Inst *> InferPotentialRelations(
.Eq(llvm::APInt(XI->Width, 0))());
}

if (C2 && (XC & YC).eq(ZC)) {
Results.push_back(Builder(XI, IC).And(YI).Eq(ZI)());
}
// if (C2 && (XC & YC).eq(ZC)) {
// Results.push_back(Builder(XI, IC).And(YI).Eq(ZI)());
// }

if (C2 && (XC | YC).eq(ZC)) {
Results.push_back(Builder(XI, IC).Or(YI).Eq(ZI)());
}
// if (C2 && (XC | YC).eq(ZC)) {
// Results.push_back(Builder(XI, IC).Or(YI).Eq(ZI)());
// }

if (C2 && (XC ^ YC).eq(ZC)) {
Results.push_back(Builder(XI, IC).Xor(YI).Eq(ZI)());
}
// if (C2 && (XC ^ YC).eq(ZC)) {
// Results.push_back(Builder(XI, IC).Xor(YI).Eq(ZI)());
// }

if (C2 && (XC != 0 && YC != 0) && (XC + YC).eq(ZC)) {
Results.push_back(Builder(XI, IC).Add(YI).Eq(ZI)());
}
// if (C2 && (XC != 0 && YC != 0) && (XC + YC).eq(ZC)) {
// Results.push_back(Builder(XI, IC).Add(YI).Eq(ZI)());
// }

// TODO Make width independent by using bitwidth insts
if (C2 && (XC | YC | ~ZC).isAllOnesValue()) {