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

Remove Let, add a 'mem' operand class instead #41

Merged
merged 250 commits into from
Oct 6, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
250 commits
Select commit Hold shift + click to select a range
80b31fc
added node variants of most memory ops
Hugobros3 Jul 25, 2024
29ad099
removed memcpy and memset primops
Hugobros3 Jul 25, 2024
b3192f0
removed lea_op in favor of Lea node
Hugobros3 Jul 26, 2024
ed090e3
migrated load and store to nodes
Hugobros3 Jul 26, 2024
34ea12a
migrated alloc primops to nodes
Hugobros3 Jul 26, 2024
14afc2e
slim: added back alloca[] syntax
Hugobros3 Jul 26, 2024
e064fbc
added gen_if()
Hugobros3 Jul 26, 2024
6691183
added gen_loop and gen_match
Hugobros3 Jul 26, 2024
873d1f7
align gen_if's signature with the others
Hugobros3 Jul 26, 2024
7e718f0
added gen_control helper
Hugobros3 Jul 28, 2024
9e346c3
split yield in merge_selection and block_yield
Hugobros3 Jul 28, 2024
c948c52
renamed Branch.condition
Hugobros3 Jul 28, 2024
9fa0c45
fold: port If rules to unstructured Branch
Hugobros3 Jul 28, 2024
03322b7
move cf helpers to ir.h
Hugobros3 Jul 28, 2024
fc73498
removed 'fn' operand from Return node
Hugobros3 Jul 28, 2024
81fb956
removed 'fn' operand from BasicBlock
Hugobros3 Jul 28, 2024
60266e4
slim: no longer thread 'fn' through parser
Hugobros3 Jul 28, 2024
54736d9
parser: cleanup
Hugobros3 Jul 28, 2024
c15b86e
parser: further cleanup
Hugobros3 Jul 28, 2024
9167052
use cf builders in parser
Hugobros3 Jul 28, 2024
e6626ba
always use the builder variant of cf instrs
Hugobros3 Jul 28, 2024
6b251c7
wip: making structured constructs terminators
Hugobros3 Jul 28, 2024
cd18c87
fixed terminator-if bugs
Hugobros3 Jul 28, 2024
a0f303c
fixed mac build
Hugobros3 Jul 29, 2024
83f24b7
converted Match to a terminator too
Hugobros3 Jul 29, 2024
e836142
convert Loop to a terminator
Hugobros3 Jul 31, 2024
737a4d3
made Control a structured construct too
Hugobros3 Jul 31, 2024
a1d2ad0
body_builder: simplify generation of structured constructs
Hugobros3 Jul 31, 2024
5c8e6b6
c: fix segfault in emit_lea
Hugobros3 Jul 31, 2024
3f0575f
clean up how body_builder deals with structured constructs
Hugobros3 Jul 31, 2024
ab9a912
body_builder: don't pass in types by pointer
Hugobros3 Jul 31, 2024
55e005c
make stack ops into nodes
Hugobros3 Jul 31, 2024
3728f54
made 'nominality' a node property
Hugobros3 Jul 31, 2024
3c8a9a9
cfg: remove handling of Block
Hugobros3 Jul 31, 2024
e469c6c
converted debug_printf primop
Hugobros3 Jul 31, 2024
15cd8ca
renamed set_value_name
Hugobros3 Jul 31, 2024
4daf653
made relevant primop instructions values too
Hugobros3 Jul 31, 2024
4b4cb4d
removed Variables
Hugobros3 Jul 31, 2024
f9d02eb
cull some old irrelevant builder fns
Hugobros3 Jul 31, 2024
1d622d2
fixed opt_inline
Hugobros3 Jul 31, 2024
80245f6
allow destroying unused loads
Hugobros3 Jul 31, 2024
64f5372
sort of getting there, kinda
Hugobros3 Jul 31, 2024
1b6d917
fix binding
Hugobros3 Aug 1, 2024
5f5ff84
logging improvements
Hugobros3 Aug 1, 2024
c6622f5
printer improvements
Hugobros3 Aug 1, 2024
39d9481
fixed Let in spirv
Hugobros3 Aug 1, 2024
067cb06
added verifier pass for dealing with unbound instructions
Hugobros3 Aug 1, 2024
407baf4
various misc changes to rewriting
Hugobros3 Aug 1, 2024
19f7e47
free_variables: find unbound instructions
Hugobros3 Aug 1, 2024
c62d840
diagnostics improvements
Hugobros3 Aug 1, 2024
b8be505
removed case from let's tail
Hugobros3 Aug 1, 2024
e172136
move print.h to public include folder
Hugobros3 Aug 2, 2024
a9d188a
print: move internal stuff out of public API
Hugobros3 Aug 2, 2024
752eee1
print: make config the second parameter instead of the last
Hugobros3 Aug 2, 2024
4be0c2b
print: use PrintCtx in the geneated stuff too!
Hugobros3 Aug 2, 2024
b5ca6a2
added compound instructions
Hugobros3 Aug 2, 2024
ab43398
use compound instructions for constants
Hugobros3 Aug 2, 2024
f83bf8c
removed quote_op
Hugobros3 Aug 2, 2024
cbc8403
fix restructure pass
Hugobros3 Aug 2, 2024
1f8ba14
added nullability checks to the grammar
Hugobros3 Aug 2, 2024
dcdf7a2
made cases mutable
Hugobros3 Aug 3, 2024
1671338
spv: simplify emit_instruction signature
Hugobros3 Aug 3, 2024
a43deff
disable mem2reg
Hugobros3 Aug 3, 2024
aa0cf51
use basic blocks for structural exits
Hugobros3 Aug 3, 2024
6b54ecf
removed Case node
Hugobros3 Aug 3, 2024
881e90f
parser: reorganize
Hugobros3 Aug 3, 2024
ac6f7bb
fix parser crash
Hugobros3 Aug 3, 2024
6b27a82
run check_type after validation operands
Hugobros3 Aug 3, 2024
0f2ea32
trying to get rid of the normalize pass...
Hugobros3 Aug 3, 2024
fd04fed
fix build when llvm is absent
Hugobros3 Aug 5, 2024
74ef093
Added mem, removed let and associated scheduled machinery
Hugobros3 Aug 7, 2024
6d562f8
fixes
Hugobros3 Aug 7, 2024
c9ca087
empty.slim compiles
Hugobros3 Aug 7, 2024
1c3a719
ported l2s to mem
Hugobros3 Aug 7, 2024
4f47a0e
added scheduler
Hugobros3 Aug 8, 2024
1f5740c
reworking pretty-printer (it's not pretty yet)
Hugobros3 Aug 8, 2024
4e28702
added ExtInstr and migrated front-end ops to 'shady.frontend'
Hugobros3 Aug 8, 2024
8d793b2
removed support for multiple return types
Hugobros3 Aug 8, 2024
2f4824d
fix a couple mem issues in infer
Hugobros3 Aug 8, 2024
632a4ad
printer: print certain nodes inline
Hugobros3 Aug 8, 2024
891f285
use BindIndentifiers to bind basic blocks
Hugobros3 Aug 8, 2024
3f71959
infer: gut some suspicious code dealing with structured CF
Hugobros3 Aug 8, 2024
5632d72
added node operand folding
Hugobros3 Aug 8, 2024
16a4376
fixed demote_alloca
Hugobros3 Aug 8, 2024
c0174c9
made operands of ExtInstr values
Hugobros3 Aug 8, 2024
192945b
cleanup pass
Hugobros3 Aug 8, 2024
7e48e7b
fix demote_alloca forgetting mem
Hugobros3 Aug 8, 2024
1b1a166
dead load removal
Hugobros3 Aug 8, 2024
855fee1
fix memory corruption when folding operands within a list
Hugobros3 Aug 9, 2024
a313ae0
dict: add some sanity/validation checks
Hugobros3 Aug 9, 2024
36cfcd0
use __attribute__((designated_init)) on node payloads
Hugobros3 Aug 9, 2024
49618b1
move 'mem' operand to be the first where it exists
Hugobros3 Aug 9, 2024
5380fd1
fix instances of designated initializers not being used properly
Hugobros3 Aug 9, 2024
376e7a1
fix binding
Hugobros3 Aug 9, 2024
50c304b
misc. fixes
Hugobros3 Aug 9, 2024
4aab378
reinstate some helpers to deal with multiple return
Hugobros3 Aug 9, 2024
c33e818
cleaned up and fixed lower_cf_instrs
Hugobros3 Aug 10, 2024
bf7a6f3
printer: more pretty
Hugobros3 Aug 10, 2024
10abbb6
partially fix lower_tailcalls
Hugobros3 Aug 10, 2024
17cdbc1
body_builder: added some useful helpers to reduce verbosity
Hugobros3 Aug 10, 2024
5da87ee
fixed opt_restructure
Hugobros3 Aug 10, 2024
bdb6118
fix more memory simplfication logic
Hugobros3 Aug 10, 2024
6e5bfc5
remove subgroup_broadcast_first in favor of using the equivalent spv
Hugobros3 Aug 10, 2024
df9521f
fixed lower_subgroup_vars
Hugobros3 Aug 10, 2024
2477851
spv: converted emit_instruction to single-return
Hugobros3 Aug 11, 2024
1d5e46a
backends: put value code near instruction code
Hugobros3 Aug 11, 2024
2fde749
backends: moved control flow to own files
Hugobros3 Aug 11, 2024
0557bbb
backends cleanup
Hugobros3 Aug 11, 2024
2099567
spirv: use the scheduler
Hugobros3 Aug 11, 2024
af5c8a1
remove subgroup primops (except assume) and use spv ops directly
Hugobros3 Aug 11, 2024
da88439
spv: refactor to put all the fn-related data in a struct
Hugobros3 Aug 11, 2024
b0f5313
spv: get rid of leftover namespacing macros
Hugobros3 Aug 11, 2024
9a71123
spv: namespace everything
Hugobros3 Aug 11, 2024
86ddaee
spv: emit mems
Hugobros3 Aug 11, 2024
62a5a9e
fix reduce op in scheduler
Hugobros3 Aug 11, 2024
9ad6b52
fixing some more spirv bugs
Hugobros3 Aug 11, 2024
862c85e
bind: try to use LEAs for subscript ops
Hugobros3 Aug 12, 2024
7fb6763
move slim-specific passes out of main target
Hugobros3 Aug 12, 2024
6e011ca
fix lower_alloca
Hugobros3 Aug 12, 2024
22c375a
fix debug_printf parsing
Hugobros3 Aug 12, 2024
52a4ff0
added builder sanity-check test
Hugobros3 Aug 12, 2024
2fc88e7
magic control-flow insertion works
Hugobros3 Aug 12, 2024
b79a677
lower_alloca: fix
Hugobros3 Aug 12, 2024
0dc0271
fix lower_physical_ptrs
Hugobros3 Aug 12, 2024
d6560d9
restore spirv_lift_globals_ssbo functionality
Hugobros3 Aug 12, 2024
523888f
move spirv passes to the backend
Hugobros3 Aug 12, 2024
6c3054c
reorganise shady target sources
Hugobros3 Aug 12, 2024
383c262
removed unfinished simt2d pass
Hugobros3 Aug 12, 2024
3e9c315
spv: handle the fact some things cannot be emitted at top level
Hugobros3 Aug 12, 2024
f172575
body_builder: handle blocks with non-trivial control flow
Hugobros3 Aug 12, 2024
2d04955
fixed inlining
Hugobros3 Aug 12, 2024
31b3428
misc. fixes
Hugobros3 Aug 12, 2024
0c229e5
fix lower_generic_ptrs
Hugobros3 Aug 12, 2024
1c2c91c
fix grammar.json grammar
Hugobros3 Aug 12, 2024
3f7bbaa
moved name binding nodes to ExtInstr
Hugobros3 Aug 12, 2024
c1c95a5
slim: remove remnants of old j/br syntax
Hugobros3 Aug 12, 2024
4ba856c
reconvergence_heuristics: in progress
Hugobros3 Aug 12, 2024
5906216
parser: allow continuations to see results in their dominator
Hugobros3 Aug 13, 2024
cecc321
fix bad mem threading in reconvergence_heuristics
Hugobros3 Aug 13, 2024
9704159
print: nest continuations according to dominance
Hugobros3 Aug 13, 2024
8b9d9c1
fixed lift_indirect_targets
Hugobros3 Aug 13, 2024
13a86b9
cfg_dump: avoid % in output
Hugobros3 Aug 13, 2024
81389f3
removed join point primops
Hugobros3 Aug 13, 2024
ccbcb77
fix a bunch more mem threading issues
Hugobros3 Aug 13, 2024
8be3e06
print: accurately deal with late-scheduled instructions
Hugobros3 Aug 13, 2024
cdacaa6
lift_indirect_targets works correctly with transitive dependencies
Hugobros3 Aug 13, 2024
225278a
c: remove namespacing macros
Hugobros3 Aug 13, 2024
ecb8112
dump: make it work when a CFG can't be built
Hugobros3 Aug 13, 2024
1d3e5e8
brought back C backend !
Hugobros3 Aug 13, 2024
d4fa616
disable switch if-tree lowering for now
Hugobros3 Aug 13, 2024
dbbac98
spv: fix structured control flow
Hugobros3 Aug 15, 2024
607c625
spv: emit bbs in the order the validator expects
Hugobros3 Aug 15, 2024
18fde87
fix build on macOS
Hugobros3 Aug 15, 2024
a6a2cd5
add sanity check for dictionnaries
Hugobros3 Aug 16, 2024
01d2ad9
reconvergence_heuristics are doomed, needs rewrite :s
Hugobros3 Aug 16, 2024
032fc93
vcc: added a cmake setting for clang name
Hugobros3 Aug 16, 2024
1cf11fc
l2s: updates to API
Hugobros3 Aug 16, 2024
759f3c1
removed reconvergence heuristics pass
Hugobros3 Aug 19, 2024
4254c97
made tailcall analysis smarter/lighter
Hugobros3 Aug 19, 2024
293c35e
added new free frontier analysis
Hugobros3 Aug 19, 2024
4a56ea8
removed old free_variables analysis
Hugobros3 Aug 19, 2024
1b97c11
rewriter: only import Exported decls
Hugobros3 Aug 19, 2024
219aecb
everything mostly works :tm:
Hugobros3 Aug 19, 2024
b1a8ad6
l2s: fixed scf recovery
Hugobros3 Aug 20, 2024
16c9992
lower_alloca: make fast
Hugobros3 Aug 20, 2024
f588481
improve lower_alloca's reliability
Hugobros3 Aug 20, 2024
df5fb57
spv: be a bit more conservative on what can be emitted at top level
Hugobros3 Aug 20, 2024
a850c80
visitor&uses: provide index in operand list
Hugobros3 Aug 20, 2024
ba83d27
l2s: rewrite params by hand and remove hack in rewrite.c
Hugobros3 Aug 20, 2024
560cd4c
bind: don't generate dummy loads
Hugobros3 Aug 20, 2024
a1c1243
fixed checkerboard sample
Hugobros3 Aug 20, 2024
6157a70
added dominance checks to the scheduler
Hugobros3 Aug 20, 2024
bfd75f7
l2s: use an extinstr to remember scope info
Hugobros3 Aug 20, 2024
c5747ac
l2s: removed wrapper blocks and deal with phis directly
Hugobros3 Aug 20, 2024
90425bd
l2s: removed wrappers map
Hugobros3 Aug 21, 2024
ecc31d0
l2s: refactor the control wrapping code to make decisions prior to re…
Hugobros3 Aug 21, 2024
0c605f4
l2s: rewrite according to domtree
Hugobros3 Aug 21, 2024
6aea21b
removed scope stuff from l2s_postprocess
Hugobros3 Aug 21, 2024
a45c6bd
added lift_everything pass
Hugobros3 Aug 21, 2024
1278dd7
added a pass turning shady.scope into control blocks
Hugobros3 Aug 21, 2024
9e633b7
re-engineered CFG analysis 'works'
Hugobros3 Aug 21, 2024
22b6079
everything 'works'
Hugobros3 Aug 21, 2024
baab2c5
new version of the loop heuristic wip
Hugobros3 Aug 22, 2024
d02b6d5
scope_heuristic: cleanup
Hugobros3 Aug 22, 2024
03399e8
scope_heuristics: more reliably deal with loops by making their heade…
Hugobros3 Aug 22, 2024
9758e72
fix a couple memory safety issues
Hugobros3 Aug 22, 2024
7e8b3ae
printer QOL improvements
Hugobros3 Aug 22, 2024
a6ef11d
scope2control: deal with uniform values
Hugobros3 Aug 22, 2024
8d0a3b2
scope_heuristics: improved
Hugobros3 Aug 22, 2024
1d8bce5
lift_everything: actually don't lift structured targets
Hugobros3 Aug 22, 2024
0566bdf
fix memory leak in body_builder
Hugobros3 Aug 22, 2024
cdd486a
re-added old reconvergence heuristics pass
Hugobros3 Aug 22, 2024
626c6b1
scope2control: fix memory leaks
Hugobros3 Aug 22, 2024
8e50902
remove lifting logic from reconvergence_heuristics (handled by lift_e…
Hugobros3 Aug 22, 2024
f89a0aa
re-added lcssa pass
Hugobros3 Aug 22, 2024
7f19baf
reconvergence_heuristics: rename idom to postdom
Hugobros3 Aug 22, 2024
f86ccba
print: use BB names
Hugobros3 Aug 22, 2024
dca4d83
fixed reconvergence heuristics not inserting joins properly
Hugobros3 Aug 23, 2024
80204bb
config: move relevant options to input_cf section
Hugobros3 Aug 27, 2024
540a06a
slim: added line info to parser and errors
Hugobros3 Aug 27, 2024
e5a159d
fixed lower_workgroups pass
Hugobros3 Aug 31, 2024
1e4414e
c: fix composite emission
Hugobros3 Aug 31, 2024
2f63526
c/ispc: fix various codegen issues
Hugobros3 Aug 31, 2024
7b10dc1
c: fix some memory leaks
Hugobros3 Aug 31, 2024
9dd490a
aobench: fix ispc path
Hugobros3 Aug 31, 2024
9b0cae2
c: make sure to emit bodies recursively _first_
Hugobros3 Aug 31, 2024
967eb9b
c: move some fns about
Hugobros3 Aug 31, 2024
0880a22
c: always bind primops for now
Hugobros3 Aug 31, 2024
07680fb
aobench: disable vectorisation
Hugobros3 Aug 31, 2024
2cc0795
fold: fix broken match folding rule
Hugobros3 Aug 31, 2024
f6eeb56
move opt_restructure to the end of the pipeline
Hugobros3 Sep 1, 2024
e8d557a
lower_generic_globals: avoid creating an useless constant
Hugobros3 Sep 1, 2024
801bfc7
lower_generic_ptrs: fix write path
Hugobros3 Sep 1, 2024
1626e02
fix some asan issues
Hugobros3 Sep 2, 2024
c73082c
mem2reg2: fix broken syntax
Hugobros3 Sep 2, 2024
baacb84
added simplistic mem2reg opt
Hugobros3 Sep 2, 2024
652e134
fix opt_demote_alloca
Hugobros3 Sep 2, 2024
50ac941
improved fixedpoint opt
Hugobros3 Sep 2, 2024
2e26953
cfg: deal with structured edges better
Hugobros3 Sep 2, 2024
80fe794
opt_demote_alloca: stronger against dead stores
Hugobros3 Sep 2, 2024
bda535c
mem2reg: allow searching in dominators
Hugobros3 Sep 2, 2024
a3980b5
remove redudant search_processed calls from all passes
Hugobros3 Sep 2, 2024
a96244e
changed signature of search_processed
Hugobros3 Sep 2, 2024
4ad3d1e
added opt to eliminate trivial control blocks
Hugobros3 Sep 2, 2024
7e8d5d9
fix broken multi-word int serdes
Hugobros3 Sep 2, 2024
5beef4f
split Lea in PtrArrayElementOffset and PtrCompositeElement
Hugobros3 Sep 3, 2024
046dba7
fix mem2reg (i am big dumb)
Hugobros3 Sep 3, 2024
61580d1
fix reconvergence_heuristics
Hugobros3 Sep 3, 2024
5b0161a
fix API that C++ hates
Hugobros3 Sep 3, 2024
61c447b
ignore llvm.var.annotation
Hugobros3 Sep 3, 2024
ece2713
prepare lift_indirect_targets
Hugobros3 Sep 3, 2024
e79683c
eliminate 0-sized memcpy from generated code
Hugobros3 Sep 11, 2024
1ca1ce7
hacky fix for lift_indirect_targets
Hugobros3 Sep 11, 2024
23aefdb
l2s: robustly deal with funny BB orders on-disk
Hugobros3 Sep 11, 2024
cdd1cf4
fix Match merges being emitted wrong in SPIR-V mode
Hugobros3 Sep 11, 2024
4038683
add 'static' to loose functions in vec_mat.h
Hugobros3 Sep 11, 2024
bc760e0
cfg: improved configuration mechanism
Hugobros3 Sep 11, 2024
b6c7443
added a pass to remove critical edges
Hugobros3 Sep 11, 2024
7abfe93
cleaned up reconvergence_heuristics, fix uniform params
Hugobros3 Sep 11, 2024
25001c0
make generic address tags 3-bit wide and reserve 000 and 111 for Global
Hugobros3 Sep 11, 2024
c963dff
fix broken global variable initialisation
Hugobros3 Sep 12, 2024
f2c7f46
fix broken lowering in lower_physical_ptrs
Hugobros3 Sep 12, 2024
3bd459b
work towards fixing fn_pointers
Hugobros3 Sep 12, 2024
595cde3
fix inconsistent types in l2s_instr
Hugobros3 Sep 23, 2024
51d43f6
remove compile.h, move it's functionality elsewhere
Hugobros3 Sep 24, 2024
cf12c72
apply lower_cf_instrs in slim driver
Hugobros3 Sep 24, 2024
1806112
restored mem2reg test functionality
Hugobros3 Sep 24, 2024
6f97e79
comment out broken Vcc test
Hugobros3 Sep 24, 2024
536ebda
remove unused declaration tripping up SWIG
Hugobros3 Sep 24, 2024
7560752
fix infinite loop in chase_ptr_to_source
Hugobros3 Sep 24, 2024
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
5 changes: 3 additions & 2 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,9 @@ else ()
endif ()

find_package(LLVM QUIET)
if (LLVM_FOUND)
message("LLVM ${LLVM_VERSION} found")
endif()
if(NOT ${LLVM_FOUND} AND WIN32 AND ${SHADY_WIN32_FIX_PARTIAL_LLVM_INSTALL})
find_program(clang_exe "clang.exe")
if(${clang_exe} STREQUAL "clang_exe-NOTFOUND")
Expand Down Expand Up @@ -78,8 +81,6 @@ if(NOT ${LLVM_FOUND} AND WIN32 AND ${SHADY_WIN32_FIX_PARTIAL_LLVM_INSTALL})
message(STATUS "Win32: Installed LLVM ${LLVM_VERSION} found at ${LLVM_DIR}")
set(LLVM_FOUND TRUE)
endif()
else()
message("LLVM ${LLVM_VERSION} found")
endif()

include(GNUInstallDirs)
Expand Down
3 changes: 0 additions & 3 deletions include/shady/be/dump.h
Original file line number Diff line number Diff line change
@@ -1,9 +1,6 @@
#ifndef SHD_BE_DUMP_H
#define SHD_BE_DUMP_H

void print_module_into_str(Module* mod, char** str_ptr, size_t* size);
void print_node_into_str(const Node* node, char** str_ptr, size_t* size);

void dump_module(Module*);
void dump_node(const Node* node);

Expand Down
10 changes: 7 additions & 3 deletions include/shady/config.h
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@ struct ArenaConfig_ {

/// 'folding' optimisations - happen in the constructors directly
struct {
bool inline_single_use_bbs;
bool fold_static_control_flow;
bool delete_unreachable_structured_cases;
bool weaken_non_leaking_allocas;
Expand All @@ -65,22 +66,25 @@ struct CompilerConfig_ {
uint8_t minor;
} target_spirv_version;

struct {
bool restructure_with_heuristics;
bool add_scope_annotations;
bool has_scope_annotations;
} input_cf;

struct {
bool emulate_generic_ptrs;
bool emulate_physical_memory;

bool emulate_subgroup_ops;
bool emulate_subgroup_ops_extended_types;
bool simt_to_explicit_simd;
bool int64;
bool decay_ptrs;
} lower;

struct {
bool spv_shuffle_instead_of_broadcast_first;
bool force_join_point_lifting;
bool restructure_everything;
bool recover_structure;
} hacks;

struct {
Expand Down
15 changes: 15 additions & 0 deletions include/shady/fe/slim.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
#ifndef SHADY_SLIM_H
#define SHADY_SLIM_H

typedef enum {
SlimOpDereference,
SlimOpAssign,
SlimOpAddrOf,
SlimOpSubscript,
SlimOpBindVal,
SlimOpBindVar,
SlimOpBindContinuations,
SlimOpUnbound,
} SlimFrontEndOpCodes;

#endif
Loading
Loading