Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
393 commits
Select commit Hold shift + click to select a range
9088709
Merge branch 'llvm:main' into mtdevelopment
trcrsired Jan 7, 2024
76aa6b5
add memtag intrinsics
trcrsired Jan 7, 2024
4a88bca
Merge branch 'llvm:main' into mtdevelopment
trcrsired Jan 7, 2024
402ded9
Fix intrinsics
trcrsired Jan 7, 2024
3491915
Merge remote-tracking branch 'refs/remotes/origin/mtdevelopment' into…
trcrsired Jan 7, 2024
b546366
Fixing instrmemtag
trcrsired Jan 7, 2024
b0da50a
fix wasmstacktagging compilation
trcrsired Jan 7, 2024
4547d87
naive fix to see what's going on with wasm stack tagging
trcrsired Jan 7, 2024
da1df72
fix parameter indexc
trcrsired Jan 7, 2024
5758bf1
Merge branch 'llvm:main' into mtdevelopment
trcrsired Jan 7, 2024
45eb287
Merge branch 'llvm:main' into mtdevelopment
trcrsired Jan 11, 2024
9dcecc8
Merge branch 'llvm:main' into mtdevelopment
trcrsired Jan 11, 2024
2808c7c
Merge branch 'llvm:main' into mtdevelopment
trcrsired Jan 12, 2024
b52399e
Merge branch 'llvm:main' into mtdevelopment
trcrsired Jan 12, 2024
76d747c
Merge branch 'llvm:main' into mtdevelopment
trcrsired Jan 12, 2024
c28a5b9
Merge branch 'llvm:main' into mtdevelopment
trcrsired Jan 12, 2024
03e689d
Add mayload and maystore to memtag instructions
trcrsired Jan 12, 2024
f1d261b
Merge branch 'llvm:main' into mtdevelopment
trcrsired Jan 12, 2024
0f12959
Merge branch 'llvm:main' into mtdevelopment
trcrsired Jan 13, 2024
e76a33f
Merge branch 'llvm:main' into mtdevelopment
trcrsired Jan 13, 2024
7b1671a
Add hinttag memtag instructions for wasm memtag
trcrsired Jan 13, 2024
597d11b
Merge branch 'llvm:main' into mtdevelopment
trcrsired Jan 13, 2024
305ceb2
Merge branch 'llvm:main' into mtdevelopment
trcrsired Jan 14, 2024
24c6b2f
Add addtag family instruction for memtag
trcrsired Jan 14, 2024
2fe6dce
Remove side effect from hintstoretag and addstoretag
trcrsired Jan 14, 2024
cf50e0d
backup code for handling lifetime
trcrsired Jan 14, 2024
6c708a2
special path for stnon standard life time tagging
trcrsired Jan 15, 2024
07ab0a5
Fixing all bugs i know in wasm memtag although the code does not feel…
trcrsired Jan 15, 2024
d0c5ee3
Merge branch 'llvm:main' into mtdevelopment
trcrsired Jan 15, 2024
f0fb2e8
Merge branch 'llvm:main' into mtdevelopment
trcrsired Jan 15, 2024
736c3ba
Merge branch 'llvm:main' into mtdevelopment
trcrsired Jan 15, 2024
1b139e7
Merge branch 'llvm:main' into mtdevelopment
trcrsired Jan 15, 2024
c4b8501
Merge branch 'llvm:main' into mtdevelopment
trcrsired Jan 16, 2024
6e1bccc
Merge branch 'llvm:main' into mtdevelopment
trcrsired Jan 16, 2024
0e1e7ea
Merge branch 'llvm:main' into mtdevelopment
trcrsired Jan 16, 2024
7ad8ff0
Merge branch 'llvm:main' into mtdevelopment
trcrsired Jan 16, 2024
57ca824
Merge branch 'llvm:main' into mtdevelopment
trcrsired Jan 16, 2024
edea3cb
Merge branch 'llvm:main' into mtdevelopment
trcrsired Jan 16, 2024
40a80e9
Merge remote-tracking branch 'origin/main' into mtdevelopment
trcrsired Jan 17, 2024
0272001
Merge branch 'llvm:main' into mtdevelopment
trcrsired Jan 17, 2024
95d64e8
Merge branch 'llvm:main' into mtdevelopment
trcrsired Jan 21, 2024
2c0d203
use starts_with for global taggings
trcrsired Jan 21, 2024
e33b8ee
Merge branch 'llvm:main' into mtdevelopment
trcrsired Jan 22, 2024
8a2c934
revert changes to clang pseudo
trcrsired Jan 22, 2024
4c2e36c
revert changes
trcrsired Jan 22, 2024
3705425
Merge branch 'llvm:main' into mtdevelopment
trcrsired Jan 22, 2024
99dcb9e
Merge branch 'llvm:main' into mtdevelopment
trcrsired Jan 22, 2024
45a433f
Merge branch 'llvm:main' into mtdevelopment
trcrsired Jan 22, 2024
e34ba56
Merge branch 'llvm:main' into mtdevelopment
trcrsired Jan 22, 2024
f0a2bb3
Merge branch 'llvm:main' into mtdevelopment
trcrsired Jan 22, 2024
7291854
Merge branch 'llvm:main' into mtdevelopment
trcrsired Jan 23, 2024
8ed9497
Merge branch 'llvm:main' into mtdevelopment
trcrsired Jan 23, 2024
06d29ca
Merge branch 'llvm:main' into mtdevelopment
trcrsired Jan 23, 2024
9fe93b1
Merge branch 'llvm:main' into mtdevelopment
trcrsired Jan 23, 2024
416a014
Merge branch 'llvm:main' into mtdevelopment
trcrsired Jan 23, 2024
f868cc2
Merge branch 'llvm:main' into mtdevelopment
trcrsired Jan 24, 2024
5b08b3b
Merge branch 'llvm:main' into mtdevelopment
trcrsired Jan 24, 2024
eabf3f0
Merge branch 'llvm:main' into mtdevelopment
trcrsired Jan 24, 2024
34bf2e9
Merge branch 'llvm:main' into mtdevelopment
trcrsired Jan 24, 2024
5cc1eda
Merge branch 'llvm:main' into mtdevelopment
trcrsired Jan 25, 2024
c6a4bf8
Merge branch 'llvm:main' into mtdevelopment
trcrsired Jan 25, 2024
1bbde8e
Merge branch 'llvm:main' into mtdevelopment
trcrsired Jan 25, 2024
419d63b
Merge branch 'llvm:main' into mtdevelopment
trcrsired Jan 25, 2024
ef58e09
Merge branch 'llvm:main' into mtdevelopment
trcrsired Jan 25, 2024
d787653
Merge branch 'llvm:main' into mtdevelopment
trcrsired Jan 25, 2024
cb16469
Merge branch 'llvm:main' into mtdevelopment
trcrsired Jan 25, 2024
4b28bd0
Merge branch 'llvm:main' into mtdevelopment
trcrsired Jan 25, 2024
b8c12a7
Merge branch 'llvm:main' into mtdevelopment
trcrsired Jan 25, 2024
155e656
Merge branch 'llvm:main' into mtdevelopment
trcrsired Jan 25, 2024
e4d55c4
Merge branch 'llvm:main' into mtdevelopment
trcrsired Jan 26, 2024
1e22f13
Merge branch 'llvm:main' into mtdevelopment
trcrsired Jan 26, 2024
21a3691
Merge branch 'llvm:main' into mtdevelopment
trcrsired Jan 26, 2024
c954aa7
Merge branch 'llvm:main' into mtdevelopment
trcrsired Jan 26, 2024
009fe22
Merge branch 'llvm:main' into mtdevelopment
trcrsired Jan 26, 2024
b9cd633
Merge branch 'llvm:main' into mtdevelopment
trcrsired Jan 26, 2024
06e1e9b
Merge branch 'llvm:main' into mtdevelopment
trcrsired Jan 26, 2024
c586b78
Merge branch 'llvm:main' into mtdevelopment
trcrsired Jan 27, 2024
a84d737
Merge remote-tracking branch 'upstream/main' into mtdevelopment
trcrsired Jan 27, 2024
fca372f
Merge remote-tracking branch 'refs/remotes/origin/mtdevelopment' into…
trcrsired Jan 27, 2024
6e2d39f
Merge branch 'llvm:main' into mtdevelopment
trcrsired Jan 27, 2024
3739e9c
Merge branch 'llvm:main' into mtdevelopment
trcrsired Jan 27, 2024
26d283a
Merge branch 'llvm:main' into mtdevelopment
trcrsired Jan 27, 2024
e4fb9ed
Merge remote-tracking branch 'upstream/main' into mtdevelopment
trcrsired Jan 27, 2024
81c7c44
Merge remote-tracking branch 'upstream/main' into mtdevelopment
trcrsired Jan 28, 2024
d8c41fe
Merge branch 'llvm:main' into mtdevelopment
trcrsired Jan 28, 2024
8ee4c02
Merge remote-tracking branch 'upstream/main' into mtdevelopment
trcrsired Jan 29, 2024
12970b9
Merge branch 'llvm:main' into mtdevelopment
trcrsired Jan 31, 2024
7ced2f8
revert the change in triple.h
trcrsired Jan 31, 2024
2bb12f7
Merge remote-tracking branch 'upstream/main' into mtdevelopment
trcrsired Jan 31, 2024
40e282c
Merge branch 'llvm:main' into mtdevelopment
trcrsired Feb 1, 2024
2202d44
Merge branch 'llvm:main' into mtdevelopment
trcrsired Feb 4, 2024
3e5f4ba
Merge branch 'llvm:main' into mtdevelopment
trcrsired Feb 4, 2024
6382642
Merge branch 'llvm:main' into mtdevelopment
trcrsired Feb 6, 2024
cc8b916
Merge remote-tracking branch 'upstream/main' into mtdevelopment
trcrsired Feb 6, 2024
e1ea2d5
Merge branch 'llvm:main' into mtdevelopment
trcrsired Feb 11, 2024
d72b80c
Merge remote-tracking branch 'upstream/main' into mtdevelopment
trcrsired Feb 15, 2024
c682ed7
Merge remote-tracking branch 'upstream/main' into mtdevelopment
trcrsired Feb 23, 2024
2966681
Merge remote-tracking branch 'upstream/main' into mtdevelopment
trcrsired Feb 23, 2024
615597d
Merge branch 'llvm:main' into mtdevelopment
trcrsired Feb 25, 2024
a83016c
Merge remote-tracking branch 'upstream/main' into mtdevelopment
trcrsired Feb 25, 2024
fb02f5b
Merge branch 'llvm:main' into mtdevelopment
trcrsired Mar 3, 2024
752e6ab
Merge branch 'llvm:main' into mtdevelopment
trcrsired Mar 5, 2024
94a2238
Merge remote-tracking branch 'upstream/main' into mtdevelopment
trcrsired Mar 9, 2024
0b8d40b
Merge remote-tracking branch 'upstream/main' into mtdevelopment
trcrsired Mar 12, 2024
bb92af0
Merge remote-tracking branch 'upstream/main' into mtdevelopment
trcrsired Mar 12, 2024
8605edb
Merge remote-tracking branch 'upstream/main' into mtdevelopment
trcrsired Mar 17, 2024
213c710
Merge remote-tracking branch 'upstream/main' into mtdevelopment
trcrsired Mar 17, 2024
55485be
Merge remote-tracking branch 'parent/main' into mtdevelopment
trcrsired Mar 17, 2024
4d28074
Merge remote-tracking branch 'parent/main' into mtdevelopment
trcrsired Mar 17, 2024
fa29474
Merge remote-tracking branch 'parent/main' into mtdevelopment
trcrsired Mar 17, 2024
26f001a
Merge remote-tracking branch 'parent/main' into mtdevelopment
trcrsired Mar 18, 2024
12942a4
Merge remote-tracking branch 'parent/main' into mtdevelopment
trcrsired Mar 18, 2024
1eeb845
Merge remote-tracking branch 'upstream/main' into mtdevelopment
trcrsired Mar 18, 2024
84191c0
Merge remote-tracking branch 'parent/main' into mtdevelopment
trcrsired Mar 24, 2024
782a097
Merge branch 'llvm:main' into mtdevelopment
trcrsired Mar 25, 2024
e1ba632
Merge remote-tracking branch 'parent/main' into mtdevelopment
trcrsired Mar 25, 2024
f3ab609
Merge remote-tracking branch 'parent/main' into mtdevelopment
trcrsired Mar 25, 2024
78814c4
Merge remote-tracking branch 'parent/main' into mtdevelopment
trcrsired Mar 25, 2024
5e0f4d1
Merge remote-tracking branch 'parent/main' into mtdevelopment
trcrsired Mar 30, 2024
c57efdb
Merge remote-tracking branch 'parent/main' into mtdevelopment
trcrsired Mar 30, 2024
f517833
Merge remote-tracking branch 'parent/main' into mtdevelopment
trcrsired Mar 30, 2024
233fb96
Merge remote-tracking branch 'parent/main' into mtdevelopment
trcrsired Mar 31, 2024
0b1b1a0
Merge remote-tracking branch 'parent/main' into mtdevelopment
trcrsired Apr 1, 2024
68bdc9a
Merge remote-tracking branch 'parent/main' into mtdevelopment
trcrsired Apr 9, 2024
e5b7387
solve conflict for WebAssemblySubtarget.h with the new half-float pro…
trcrsired Apr 28, 2024
0889db6
Merge remote-tracking branch 'parent/main' into mtdevelopment
trcrsired Apr 28, 2024
09fa574
Merge remote-tracking branch 'parent/main' into mtdevelopment
trcrsired Apr 29, 2024
93986e1
Merge remote-tracking branch 'parent/main' into mtdevelopment
trcrsired Apr 30, 2024
ab8e092
Merge remote-tracking branch 'parent/main' into mtdevelopment
trcrsired May 11, 2024
ce02945
fix merge issue from wasm sub target
trcrsired May 11, 2024
667462c
Merge remote-tracking branch 'parent/main' into mtdevelopment
trcrsired May 11, 2024
3b5c7d7
Merge remote-tracking branch 'parent/main' into mtdevelopment
trcrsired May 12, 2024
3c6d314
Merge remote-tracking branch 'parent/main' into mtdevelopment
trcrsired May 20, 2024
71d5470
Merge remote-tracking branch 'parent/main' into mtdevelopment
trcrsired May 20, 2024
4d95f60
Merge remote-tracking branch 'parent/main' into mtdevelopment
trcrsired May 26, 2024
ee97daf
Merge remote-tracking branch 'upstream/main' into mtdevelopment
trcrsired May 29, 2024
a1a0325
Merge remote-tracking branch 'upstream/main' into mtdevelopment
trcrsired May 29, 2024
1107734
Merge remote-tracking branch 'parent/main' into mtdevelopment
trcrsired May 30, 2024
d006263
Merge remote-tracking branch 'parent/main' into mtdevelopment
trcrsired May 30, 2024
e20b3c0
Add experimental support for wasm32
trcrsired May 30, 2024
cffcea5
Merge remote-tracking branch 'parent/main' into mtdevelopment
trcrsired May 30, 2024
e2a5ae9
remove redundant spaces in my asmprinter code
trcrsired May 30, 2024
b334e13
enable wasm32 for toolchains
trcrsired May 30, 2024
db67022
Fix commonargs to support wasm32
trcrsired May 30, 2024
33e5289
Fix indent
trcrsired May 30, 2024
41f5028
Using wasm instead of wasm64 for AsmPrinter
trcrsired May 30, 2024
2cb756e
Add wasm32 memtagging in the stack tagging pass
trcrsired May 30, 2024
5bc315d
Merge remote-tracking branch 'parent/main' into mtdevelopment
trcrsired May 30, 2024
d70a805
wasm32 should not use tag that is above 32 bit
trcrsired May 30, 2024
3e44ee7
Merge remote-tracking branch 'parent/main' into mtdevelopment
trcrsired May 31, 2024
7ede3ab
Merge remote-tracking branch 'parent/main' into mtdevelopment
trcrsired May 31, 2024
a3b354e
Merge branch 'llvm:main' into mtdevelopment
trcrsired May 31, 2024
18407ad
Merge branch 'llvm:main' into mtdevelopment
trcrsired Jun 1, 2024
efca2ea
Merge branch 'llvm:main' into mtdevelopment
trcrsired Jun 1, 2024
5691ded
Merge branch 'llvm:main' into mtdevelopment
trcrsired Jun 1, 2024
308a98e
Merge remote-tracking branch 'parent/main' into mtdevelopment
trcrsired Jun 1, 2024
927c1a4
Merge branch 'llvm:main' into mtdevelopment
trcrsired Jun 2, 2024
567ac0b
Change instructions
trcrsired Jun 2, 2024
b770857
Rename intrinsics and builtins for wasm mtg.
trcrsired Jun 2, 2024
4e468fd
Merge remote-tracking branch 'parent/main' into mt-2
expnkx Jun 2, 2024
cb63742
fix i32
trcrsired Jun 2, 2024
8583a50
Merge branch 'mt-2' of github.com:trcrsired/llvm-project into mt-2
trcrsired Jun 2, 2024
0901488
Change instructions
trcrsired Jun 2, 2024
84d762c
Fix mt instructions
expnkx Jun 2, 2024
c3af10f
Fix wasm mt instructions definitions
expnkx Jun 2, 2024
dc893f8
use code from aarch64 stack tagging
expnkx Jun 3, 2024
51a1df2
remove tracking
expnkx Jun 3, 2024
f34cce2
Merge remote-tracking branch 'parent/main' into mt-2
expnkx Jun 3, 2024
9a53897
Merge branch 'llvm:main' into mt-2
trcrsired Jun 3, 2024
eb6c06e
Merge remote-tracking branch 'parent/main' into mt-2
trcrsired Jun 3, 2024
9b165be
Merge branch 'llvm:main' into mt-2
trcrsired Jun 3, 2024
b8109f8
Merge branch 'llvm:main' into mt-2
trcrsired Jun 3, 2024
46ae95b
Merge remote-tracking branch 'parent/main' into mt-2
trcrsired Jun 3, 2024
2168a2b
Merge remote-tracking branch 'parent/main' into mt-2
trcrsired Jun 3, 2024
f9d51ac
Merge remote-tracking branch 'parent/main' into mt-2
trcrsired Jun 4, 2024
34388aa
Merge branch 'llvm:main' into mt-2
trcrsired Jun 4, 2024
3944873
Merge branch 'llvm:main' into mt-2
trcrsired Jun 4, 2024
38336bf
Merge remote-tracking branch 'parent/main' into mt-2
trcrsired Jun 4, 2024
440f6b4
Merge remote-tracking branch 'parent/main' into mt-2
trcrsired Jun 4, 2024
4d5d7f4
Merge branch 'llvm:main' into mt-2
trcrsired Jun 5, 2024
53301cb
Merge remote-tracking branch 'parent/main' into mt-2
trcrsired Jun 5, 2024
8f143a5
Merge remote-tracking branch 'parent/main' into mt-2
trcrsired Jun 6, 2024
b621556
Merge remote-tracking branch 'parent/main' into mt-2
trcrsired Jun 7, 2024
2d3cc1d
Merge remote-tracking branch 'parent/main' into mt-2
trcrsired Jun 8, 2024
597637d
builtin wasm mtg clang builtins parameters wrong
trcrsired Jun 8, 2024
e41af71
Merge remote-tracking branch 'parent/main' into mt-2
trcrsired Jun 8, 2024
78cca3e
Merge remote-tracking branch 'parent/main' into mt-2
trcrsired Jun 8, 2024
14f5f51
Merge remote-tracking branch 'parent/main' into mt-2
trcrsired Jun 10, 2024
00f7e2c
Merge remote-tracking branch 'parent/main' into mt-2
trcrsired Jun 11, 2024
4a26d8c
Merge remote-tracking branch 'parent/main' into mt-2
trcrsired Jun 14, 2024
fa42b1e
Merge remote-tracking branch 'parent/main' into mt-2
trcrsired Jun 15, 2024
1821833
Merge remote-tracking branch 'parent/main' into mt-2
trcrsired Jun 18, 2024
7e91c8e
Merge remote-tracking branch 'refs/remotes/origin/mt-2' into mt-2
trcrsired Jun 18, 2024
2763f7f
Merge remote-tracking branch 'parent/main' into mt-2
trcrsired Jun 19, 2024
3146d64
Merge remote-tracking branch 'parent/main' into mt-2
trcrsired Jun 20, 2024
504201c
Merge remote-tracking branch 'parent/main' into mt-2
trcrsired Jun 20, 2024
2194d22
Merge remote-tracking branch 'parent/main' into mt-2
trcrsired Jun 20, 2024
c27f04a
Merge remote-tracking branch 'parent/main' into mt-2
trcrsired Jun 20, 2024
1d600ba
Merge remote-tracking branch 'parent/main' into mt-2
trcrsired Jun 20, 2024
d0230e5
Merge remote-tracking branch 'parent/main' into mt-2
trcrsired Jun 20, 2024
c2e89f9
Merge remote-tracking branch 'parent/main' into mt-2
trcrsired Jun 21, 2024
52cd576
Merge remote-tracking branch 'parent/main' into mt-2
trcrsired Jun 21, 2024
1bce121
Merge remote-tracking branch 'parent/main' into mt-2
trcrsired Jun 21, 2024
8a8b5fa
Merge remote-tracking branch 'parent/main' into mt-2
trcrsired Jun 21, 2024
63bd29c
Merge remote-tracking branch 'parent/main' into mt-2
trcrsired Jun 21, 2024
24ae1c9
Merge remote-tracking branch 'parent/main' into mt-2
trcrsired Jun 21, 2024
1810ac4
Merge remote-tracking branch 'parent/main' into mt-2
trcrsired Jun 21, 2024
e015ed8
Merge remote-tracking branch 'parent/main' into mt-2
trcrsired Jun 21, 2024
2a20d36
Merge remote-tracking branch 'parent/main' into mt-2
trcrsired Jun 21, 2024
39e1797
Merge remote-tracking branch 'parent/main' into mt-2
trcrsired Jun 22, 2024
2db276d
Merge remote-tracking branch 'parent/main' into mt-2
trcrsired Jun 23, 2024
b4aeec0
Merge remote-tracking branch 'parent/main' into mt-2
trcrsired Jun 26, 2024
37f52ae
remove builtin-memtag.c test
trcrsired Jun 26, 2024
39bd43e
remove builtins-memtag test
trcrsired Jun 26, 2024
3fd696b
Merge branch 'llvm:main' into mt-2
trcrsired Jul 6, 2024
afd638f
Merge remote-tracking branch 'origin/main' into mt-2
trcrsired Sep 3, 2024
1b43324
Fix webassemblystacktagging break by the upstream
trcrsired Sep 3, 2024
cfef8f6
Merge remote-tracking branch 'origin/main' into mt-2
trcrsired Sep 4, 2024
62f1e98
Merge remote-tracking branch 'parent/main' into mt-2
trcrsired Sep 6, 2024
04c1430
Merge remote-tracking branch 'parent/main' into mt-2
trcrsired Sep 6, 2024
2ed8a8a
Merge remote-tracking branch 'parent/main' into mt-2
trcrsired Sep 13, 2024
dbf8c28
Merge remote-tracking branch 'parent/main' into mt-2
trcrsired Sep 23, 2024
5707749
Merge remote-tracking branch 'parent/main' into mt-2
trcrsired Oct 3, 2024
84d64eb
Merge remote-tracking branch 'parent/main' into mt-2
trcrsired Oct 6, 2024
d084cf9
Merge remote-tracking branch 'parent/main' into mt-2
trcrsired Oct 16, 2024
557e182
Use getOrInsertDeclaration
trcrsired Oct 16, 2024
38c4aab
Merge remote-tracking branch 'parent/main' into mt-2
trcrsired Oct 29, 2024
6064dbf
Merge remote-tracking branch 'refs/remotes/origin/mt-2' into mt-2
trcrsired Oct 29, 2024
4aa6d43
Merge remote-tracking branch 'parent/main' into mt-2
trcrsired Feb 11, 2025
cb0fdfb
Merge remote-tracking branch 'parent/main' into mt-2
trcrsired Feb 11, 2025
01cb856
[WebAssembly] update for upstream commit 9fbd5fb [IR][NFC] Switch to …
trcrsired Feb 11, 2025
a4aba48
[Unix] use upstream version of unix.h
trcrsired Feb 11, 2025
a185081
Merge remote-tracking branch 'parent/main' into mt-2
trcrsired Feb 11, 2025
22f6c01
Merge branch 'llvm:main' into mt-2
trcrsired Feb 12, 2025
dcac6c5
Merge remote-tracking branch 'parent/main' into mt-2
trcrsired Feb 24, 2025
22b1c30
Merge remote-tracking branch 'parent/main' into mt-2
trcrsired Mar 22, 2025
025163d
Merge remote-tracking branch 'parent/main' into mt-2
trcrsired Jul 5, 2025
1136e03
Merge remote-tracking branch 'parent/main' into mt-2
trcrsired Jul 16, 2025
31ca492
Merge remote-tracking branch 'parent/main' into mt-2
trcrsired Jul 24, 2025
b7efad5
Merge branch 'llvm:main' into mt-2
trcrsired Jul 24, 2025
e58af69
Merge remote-tracking branch 'origin/mt-2' into mt-2
trcrsired Jul 24, 2025
3ef4d94
Merge remote-tracking branch 'parent/main' into mt-2
trcrsired Jul 24, 2025
5cacbaf
[WebAssembly] Remove handling for lifetimes
trcrsired Jul 24, 2025
c780edf
Merge remote-tracking branch 'parent/main' into mt-2
trcrsired Jul 26, 2025
ee9b221
Merge remote-tracking branch 'parent/main' into mt-2
trcrsired Jul 27, 2025
108c206
Merge remote-tracking branch 'parent/main' into mt-2
trcrsired Aug 1, 2025
8a788c0
[wasm] fix wasm sub target merging issue
trcrsired Aug 2, 2025
d5000ef
[wasm] HasGC merged missing
trcrsired Aug 2, 2025
2da4535
Merge remote-tracking branch 'parent/main' into mt-2
trcrsired Aug 28, 2025
2660f35
Merge remote-tracking branch 'parent/main' into mt-2
trcrsired Oct 11, 2025
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
27 changes: 27 additions & 0 deletions clang/include/clang/Basic/BuiltinsWebAssembly.def
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,33 @@
BUILTIN(__builtin_wasm_memory_size, "zIi", "n")
BUILTIN(__builtin_wasm_memory_grow, "zIiz", "n")

// Memory Tagging
BUILTIN(__builtin_wasm_memtag_status, "zIi", "n")
BUILTIN(__builtin_wasm_memtag_tagbits, "zIi", "n")
BUILTIN(__builtin_wasm_memtag_startbit, "zIi", "n")
BUILTIN(__builtin_wasm_memtag_extract, "zIiv*", "n")
BUILTIN(__builtin_wasm_memtag_insert, "v*Iiv*z", "n")
BUILTIN(__builtin_wasm_memtag_copy, "v*Iiv*v*", "n")
BUILTIN(__builtin_wasm_memtag_sub, "YIiv*v*", "n")
BUILTIN(__builtin_wasm_memtag_load, "v*Iiv*", "n")
BUILTIN(__builtin_wasm_memtag_store, "vIiv*z", "n")
BUILTIN(__builtin_wasm_memtag_storez, "vIiv*z", "n")
BUILTIN(__builtin_wasm_memtag_untag, "v*Iiv*", "n")
BUILTIN(__builtin_wasm_memtag_untagstore, "v*Iiv*z", "n")
BUILTIN(__builtin_wasm_memtag_untagstorez, "v*Iiv*z", "n")
BUILTIN(__builtin_wasm_memtag_random, "v*Iiv*", "n")
BUILTIN(__builtin_wasm_memtag_randomstore, "v*Iiv*z", "n")
BUILTIN(__builtin_wasm_memtag_randomstorez, "v*Iiv*z", "n")
BUILTIN(__builtin_wasm_memtag_randommask, "v*Iiv*", "n")
BUILTIN(__builtin_wasm_memtag_randommaskstore, "v*Iiv*z", "n")
BUILTIN(__builtin_wasm_memtag_randommaskstorez, "v*Iiv*z", "n")
BUILTIN(__builtin_wasm_memtag_add, "v*Iiv*zz", "n")
BUILTIN(__builtin_wasm_memtag_addstore, "v*Iiv*zz", "n")
BUILTIN(__builtin_wasm_memtag_addstorez, "v*Iiv*zz", "n")
BUILTIN(__builtin_wasm_memtag_hint, "v*Iiv*v*z", "n")
BUILTIN(__builtin_wasm_memtag_hintstore, "v*Iiv*zv*z", "n")
BUILTIN(__builtin_wasm_memtag_hintstorez, "v*Iiv*zv*z", "n")

// Thread-local storage
TARGET_BUILTIN(__builtin_wasm_tls_size, "z", "nc", "bulk-memory")
TARGET_BUILTIN(__builtin_wasm_tls_align, "z", "nc", "bulk-memory")
Expand Down
188 changes: 188 additions & 0 deletions clang/lib/CodeGen/TargetBuiltins/WebAssembly.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -671,6 +671,194 @@ Value *CodeGenFunction::EmitWebAssemblyBuiltinExpr(unsigned BuiltinID,

return Builder.CreateCall(Callee, {TableX, TableY, SrcIdx, DstIdx, NElems});
}
case WebAssembly::BI__builtin_wasm_memtag_status: {
Value *Index = EmitScalarExpr(E->getArg(0));
Function *Callee = CGM.getIntrinsic(Intrinsic::wasm_memtag_status,
{ConvertType(E->getType())});
return Builder.CreateCall(Callee, {Index});
}
case WebAssembly::BI__builtin_wasm_memtag_tagbits: {
Value *Index = EmitScalarExpr(E->getArg(0));
Function *Callee = CGM.getIntrinsic(Intrinsic::wasm_memtag_tagbits,
{ConvertType(E->getType())});
return Builder.CreateCall(Callee, {Index});
}
case WebAssembly::BI__builtin_wasm_memtag_startbit: {
Value *Index = EmitScalarExpr(E->getArg(0));
Function *Callee = CGM.getIntrinsic(Intrinsic::wasm_memtag_startbit,
{ConvertType(E->getType())});
return Builder.CreateCall(Callee, {Index});
}
case WebAssembly::BI__builtin_wasm_memtag_extract: {
Value *Index = EmitScalarExpr(E->getArg(0));
Value *Ptr = EmitScalarExpr(E->getArg(1));
Function *Callee = CGM.getIntrinsic(Intrinsic::wasm_memtag_extract,
{ConvertType(E->getType())});
return Builder.CreateCall(Callee, {Index, Ptr});
}
case WebAssembly::BI__builtin_wasm_memtag_insert: {
Value *Index = EmitScalarExpr(E->getArg(0));
Value *Ptr = EmitScalarExpr(E->getArg(1));
Value *Newtag = EmitScalarExpr(E->getArg(2));
Function *Callee = CGM.getIntrinsic(Intrinsic::wasm_memtag_insert,
{Newtag->getType()});
return Builder.CreateCall(Callee, {Index, Ptr, Newtag});
}
case WebAssembly::BI__builtin_wasm_memtag_copy: {
Function *Callee = CGM.getIntrinsic(Intrinsic::wasm_memtag_copy);
Value *Index = EmitScalarExpr(E->getArg(0));
Value *Ptr0 = EmitScalarExpr(E->getArg(1));
Value *Ptr1 = EmitScalarExpr(E->getArg(2));
return Builder.CreateCall(Callee, {Index, Ptr0, Ptr1});
}
case WebAssembly::BI__builtin_wasm_memtag_sub: {
Function *Callee = CGM.getIntrinsic(Intrinsic::wasm_memtag_sub, ConvertType(E->getType()));
Value *Index = EmitScalarExpr(E->getArg(0));
Value *Ptr0 = EmitScalarExpr(E->getArg(1));
Value *Ptr1 = EmitScalarExpr(E->getArg(2));
return Builder.CreateCall(Callee, {Index, Ptr0, Ptr1});
}
case WebAssembly::BI__builtin_wasm_memtag_load: {
Function *Callee = CGM.getIntrinsic(Intrinsic::wasm_memtag_load);
Value *Index = EmitScalarExpr(E->getArg(0));
Value *Ptr = EmitScalarExpr(E->getArg(1));
return Builder.CreateCall(Callee, {Index, Ptr});
}
case WebAssembly::BI__builtin_wasm_memtag_store: {
Value *Index = EmitScalarExpr(E->getArg(0));
Value *Ptr = EmitScalarExpr(E->getArg(1));
Value *B16 = EmitScalarExpr(E->getArg(2));
Function *Callee = CGM.getIntrinsic(Intrinsic::wasm_memtag_store, B16->getType());
return Builder.CreateCall(Callee, {Index, Ptr, B16});
}
case WebAssembly::BI__builtin_wasm_memtag_storez: {
Value *Index = EmitScalarExpr(E->getArg(0));
Value *Ptr = EmitScalarExpr(E->getArg(1));
Value *B16 = EmitScalarExpr(E->getArg(2));
Function *Callee = CGM.getIntrinsic(Intrinsic::wasm_memtag_storez, B16->getType());
return Builder.CreateCall(Callee, {Index, Ptr, B16});
}
case WebAssembly::BI__builtin_wasm_memtag_untag: {
Function *Callee = CGM.getIntrinsic(Intrinsic::wasm_memtag_untag);
Value *Index = EmitScalarExpr(E->getArg(0));
Value *Ptr = EmitScalarExpr(E->getArg(1));
return Builder.CreateCall(Callee, {Index, Ptr});
}
case WebAssembly::BI__builtin_wasm_memtag_untagstore: {
Value *Index = EmitScalarExpr(E->getArg(0));
Value *Ptr = EmitScalarExpr(E->getArg(1));
Value *B16 = EmitScalarExpr(E->getArg(2));
Function *Callee = CGM.getIntrinsic(Intrinsic::wasm_memtag_untagstore, B16->getType());
return Builder.CreateCall(Callee, {Index, Ptr, B16});
}
case WebAssembly::BI__builtin_wasm_memtag_untagstorez: {
Value *Index = EmitScalarExpr(E->getArg(0));
Value *Ptr = EmitScalarExpr(E->getArg(1));
Value *B16 = EmitScalarExpr(E->getArg(2));
Function *Callee = CGM.getIntrinsic(Intrinsic::wasm_memtag_untagstorez, B16->getType());
return Builder.CreateCall(Callee, {Index, Ptr, B16});
}
case WebAssembly::BI__builtin_wasm_memtag_random: {
Function *Callee = CGM.getIntrinsic(Intrinsic::wasm_memtag_random);
Value *Index = EmitScalarExpr(E->getArg(0));
Value *Ptr = EmitScalarExpr(E->getArg(1));
return Builder.CreateCall(Callee, {Index, Ptr});
}
case WebAssembly::BI__builtin_wasm_memtag_randomstore: {
Value *Index = EmitScalarExpr(E->getArg(0));
Value *Ptr = EmitScalarExpr(E->getArg(1));
Value *B16 = EmitScalarExpr(E->getArg(2));
Function *Callee = CGM.getIntrinsic(Intrinsic::wasm_memtag_randomstore, B16->getType());
return Builder.CreateCall(Callee, {Index, Ptr, B16});
}
case WebAssembly::BI__builtin_wasm_memtag_randomstorez: {
Value *Index = EmitScalarExpr(E->getArg(0));
Value *Ptr = EmitScalarExpr(E->getArg(1));
Value *B16 = EmitScalarExpr(E->getArg(2));
Function *Callee = CGM.getIntrinsic(Intrinsic::wasm_memtag_randomstorez, B16->getType());
return Builder.CreateCall(Callee, {Index, Ptr, B16});
}
case WebAssembly::BI__builtin_wasm_memtag_randommask: {
Value *Index = EmitScalarExpr(E->getArg(0));
Value *Ptr = EmitScalarExpr(E->getArg(1));
Value *Mask = EmitScalarExpr(E->getArg(2));
Function *Callee = CGM.getIntrinsic(Intrinsic::wasm_memtag_random, Mask->getType());
return Builder.CreateCall(Callee, {Index, Ptr, Mask});
}
case WebAssembly::BI__builtin_wasm_memtag_randommaskstore: {
Value *Index = EmitScalarExpr(E->getArg(0));
Value *Ptr = EmitScalarExpr(E->getArg(1));
Value *B16 = EmitScalarExpr(E->getArg(2));
Value *Mask = EmitScalarExpr(E->getArg(3));
Function *Callee = CGM.getIntrinsic(Intrinsic::wasm_memtag_randomstore,
{B16->getType(), Mask->getType()});
return Builder.CreateCall(Callee, {Index, Ptr, B16, Mask});
}
case WebAssembly::BI__builtin_wasm_memtag_randommaskstorez: {
Value *Index = EmitScalarExpr(E->getArg(0));
Value *Ptr = EmitScalarExpr(E->getArg(1));
Value *B16 = EmitScalarExpr(E->getArg(2));
Value *Mask = EmitScalarExpr(E->getArg(3));
Function *Callee = CGM.getIntrinsic(Intrinsic::wasm_memtag_randomstorez,
{B16->getType(), Mask->getType()});
return Builder.CreateCall(Callee, {Index, Ptr, B16, Mask});
}
case WebAssembly::BI__builtin_wasm_memtag_add: {
Value *Index = EmitScalarExpr(E->getArg(0));
Value *Ptr = EmitScalarExpr(E->getArg(1));
Value *PtrOffset = EmitScalarExpr(E->getArg(2));
Value *TagOffset = EmitScalarExpr(E->getArg(3));
Function *Callee = CGM.getIntrinsic(Intrinsic::wasm_memtag_add, TagOffset->getType());
return Builder.CreateCall(Callee, {Index, Ptr, PtrOffset, TagOffset});
}
case WebAssembly::BI__builtin_wasm_memtag_addstore: {
Value *Index = EmitScalarExpr(E->getArg(0));
Value *Ptr = EmitScalarExpr(E->getArg(1));
Value *B16 = EmitScalarExpr(E->getArg(2));
Value *PtrOffset = EmitScalarExpr(E->getArg(3));
Value *TagOffset = EmitScalarExpr(E->getArg(4));
Function *Callee = CGM.getIntrinsic(Intrinsic::wasm_memtag_addstore,
{B16->getType(), TagOffset->getType()});
return Builder.CreateCall(Callee, {Index, Ptr, B16, PtrOffset, TagOffset});
}
case WebAssembly::BI__builtin_wasm_memtag_addstorez: {
Value *Index = EmitScalarExpr(E->getArg(0));
Value *Ptr = EmitScalarExpr(E->getArg(1));
Value *B16 = EmitScalarExpr(E->getArg(2));
Value *PtrOffset = EmitScalarExpr(E->getArg(3));
Value *TagOffset = EmitScalarExpr(E->getArg(4));
Function *Callee = CGM.getIntrinsic(Intrinsic::wasm_memtag_addstorez,
{B16->getType(), TagOffset->getType()});
return Builder.CreateCall(Callee, {Index, Ptr, B16, PtrOffset, TagOffset});
}
case WebAssembly::BI__builtin_wasm_memtag_hint: {
Value *Index = EmitScalarExpr(E->getArg(0));
Value *Ptr = EmitScalarExpr(E->getArg(1));
Value *HintPtr = EmitScalarExpr(E->getArg(2));
Value *HintIdx = EmitScalarExpr(E->getArg(3));
Function *Callee = CGM.getIntrinsic(Intrinsic::wasm_memtag_hint, HintIdx->getType());
return Builder.CreateCall(Callee, {Index, Ptr, HintPtr, HintIdx});
}
case WebAssembly::BI__builtin_wasm_memtag_hintstore: {
Value *Index = EmitScalarExpr(E->getArg(0));
Value *Ptr = EmitScalarExpr(E->getArg(1));
Value *B16 = EmitScalarExpr(E->getArg(2));
Value *HintPtr = EmitScalarExpr(E->getArg(3));
Value *HintIdx = EmitScalarExpr(E->getArg(4));
Function *Callee = CGM.getIntrinsic(Intrinsic::wasm_memtag_hintstore,
{B16->getType(), HintIdx->getType()});
return Builder.CreateCall(Callee, {Index, Ptr, B16, HintPtr, HintIdx});
}
case WebAssembly::BI__builtin_wasm_memtag_hintstorez: {
Value *Index = EmitScalarExpr(E->getArg(0));
Value *Ptr = EmitScalarExpr(E->getArg(1));
Value *B16 = EmitScalarExpr(E->getArg(2));
Value *HintPtr = EmitScalarExpr(E->getArg(3));
Value *HintIdx = EmitScalarExpr(E->getArg(4));
Function *Callee = CGM.getIntrinsic(Intrinsic::wasm_memtag_hintstorez,
{B16->getType(), HintIdx->getType()});
return Builder.CreateCall(Callee, {Index, Ptr, B16, HintPtr, HintIdx});
}
default:
return nullptr;
}
Expand Down
1 change: 1 addition & 0 deletions clang/lib/Driver/SanitizerArgs.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1578,6 +1578,7 @@ void SanitizerArgs::addArgs(const ToolChain &TC, const llvm::opt::ArgList &Args,
}

if (Sanitizers.has(SanitizerKind::MemtagStack) &&
!TC.getTriple().isWasm() &&
!hasTargetFeatureMTE(CmdArgs))
TC.getDriver().Diag(diag::err_stack_tagging_requires_hardware_feature);
}
Expand Down
2 changes: 1 addition & 1 deletion clang/lib/Driver/ToolChain.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1635,7 +1635,7 @@ SanitizerMask ToolChain::getSupportedSanitizers() const {
if (getTriple().getArch() == llvm::Triple::x86_64 ||
getTriple().isAArch64(64) || getTriple().isRISCV())
Res |= SanitizerKind::ShadowCallStack;
if (getTriple().isAArch64(64))
if (getTriple().isAArch64(64) || getTriple().isWasm())
Res |= SanitizerKind::MemTag;
return Res;
}
Expand Down
19 changes: 12 additions & 7 deletions clang/lib/Driver/ToolChains/CommonArgs.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1752,16 +1752,21 @@ bool tools::addSanitizerRuntimes(const ToolChain &TC, const ArgList &Args,
CmdArgs.push_back("--export-dynamic-symbol=__cfi_check");

if (SanArgs.hasMemTag()) {
if (!TC.getTriple().isAndroid()) {
if (TC.getTriple().isWasm()) {
}
else if (TC.getTriple().isAndroid()) {
CmdArgs.push_back(
Args.MakeArgString("--android-memtag-mode=" + SanArgs.getMemtagMode()));
if (SanArgs.hasMemtagHeap())
CmdArgs.push_back("--android-memtag-heap");
if (SanArgs.hasMemtagStack())
CmdArgs.push_back("--android-memtag-stack");
}
else
{
TC.getDriver().Diag(diag::err_drv_unsupported_opt_for_target)
<< "-fsanitize=memtag*" << TC.getTriple().str();
}
CmdArgs.push_back(
Args.MakeArgString("--android-memtag-mode=" + SanArgs.getMemtagMode()));
if (SanArgs.hasMemtagHeap())
CmdArgs.push_back("--android-memtag-heap");
if (SanArgs.hasMemtagStack())
CmdArgs.push_back("--android-memtag-stack");
}

return !StaticRuntimes.empty() || !NonWholeStaticRuntimes.empty();
Expand Down
6 changes: 6 additions & 0 deletions compiler-rt/lib/builtins/fp_compare_impl.inc
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,15 @@ typedef int CMP_RESULT;
#elif __SIZEOF_POINTER__ == 8 && __SIZEOF_LONG__ == 4
// LLP64 ABIs use long long instead of long.
typedef long long CMP_RESULT;
#elif defined(__wasm64__)
// GCC uses int as CMP_RESULT
typedef int CMP_RESULT;
#elif __AVR__
// AVR uses a single byte for the return value.
typedef char CMP_RESULT;
#elif defined(__wasm64__)
// GCC uses int as CMP_RESULT
typedef int CMP_RESULT;
#else
// Otherwise the comparison functions return long.
typedef long CMP_RESULT;
Expand Down
6 changes: 1 addition & 5 deletions lldb/source/Host/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -115,12 +115,8 @@ else()
linux/HostInfoLinux.cpp
linux/LibcGlue.cpp
linux/Support.cpp
android/HostInfoAndroid.cpp
)
if (CMAKE_SYSTEM_NAME MATCHES "Android")
add_host_subdirectory(android
android/HostInfoAndroid.cpp
)
endif()
elseif (CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
add_host_subdirectory(freebsd
freebsd/Host.cpp
Expand Down
4 changes: 4 additions & 0 deletions lldb/source/Host/android/HostInfoAndroid.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@
//
//===----------------------------------------------------------------------===//

#ifdef __ANDROID__

#include "lldb/Host/android/HostInfoAndroid.h"
#include "lldb/Host/FileSystem.h"
#include "lldb/Host/linux/HostInfoLinux.h"
Expand Down Expand Up @@ -92,3 +94,5 @@ bool HostInfoAndroid::ComputeTempFileBaseDirectory(FileSpec &file_spec) {

return FileSystem::Instance().Exists(file_spec);
}

#endif
Loading
Loading