diff options
author | Rhys Perry <pendingchaos02@gmail.com> | 2020-06-26 15:54:22 +0100 |
---|---|---|
committer | Marge Bot <eric+marge@anholt.net> | 2020-07-28 16:56:34 +0000 |
commit | d1f992f3c2d138faa0c89a2486c4252a06886106 (patch) | |
tree | c960f64daa9f68f71c684c10d2c2da25a74e5479 /src/amd/compiler/aco_opcodes.py | |
parent | 1bbb64f300f66fbb292078072f89f04231ffd541 (diff) |
aco: rework barriers and replace can_reorder
fossil-db (Navi):
Totals from 273 (0.21% of 132058) affected shaders:
CodeSize: 937472 -> 936556 (-0.10%)
Instrs: 158874 -> 158648 (-0.14%)
Cycles: 13563516 -> 13562612 (-0.01%)
VMEM: 85246 -> 85244 (-0.00%)
SMEM: 21407 -> 21310 (-0.45%); split: +0.05%, -0.50%
VClause: 9321 -> 9317 (-0.04%)
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4905>
Diffstat (limited to 'src/amd/compiler/aco_opcodes.py')
-rw-r--r-- | src/amd/compiler/aco_opcodes.py | 15 |
1 files changed, 6 insertions, 9 deletions
diff --git a/src/amd/compiler/aco_opcodes.py b/src/amd/compiler/aco_opcodes.py index 46246cbea01..019ad9c0e0d 100644 --- a/src/amd/compiler/aco_opcodes.py +++ b/src/amd/compiler/aco_opcodes.py @@ -66,7 +66,7 @@ class Format(Enum): return [('uint32_t', 'block', '-1'), ('uint32_t', 'imm', '0')] elif self == Format.SMEM: - return [('bool', 'can_reorder', 'true'), + return [('memory_sync_info', 'sync', 'memory_sync_info()'), ('bool', 'glc', 'false'), ('bool', 'dlc', 'false'), ('bool', 'nv', 'false')] @@ -123,6 +123,9 @@ class Format(Enum): elif self == Format.PSEUDO_REDUCTION: return [('ReduceOp', 'op', None, 'reduce_op'), ('unsigned', 'cluster_size', '0')] + elif self == Format.PSEUDO_BARRIER: + return [('memory_sync_info', 'sync', None), + ('sync_scope', 'exec_scope', 'scope_invocation')] elif self == Format.VINTRP: return [('unsigned', 'attribute', None), ('unsigned', 'component', None)] @@ -133,7 +136,7 @@ class Format(Enum): ('bool', 'bound_ctrl', 'true')] elif self in [Format.FLAT, Format.GLOBAL, Format.SCRATCH]: return [('uint16_t', 'offset', 0), - ('bool', 'can_reorder', 'true'), + ('memory_sync_info', 'sync', 'memory_sync_info()'), ('bool', 'glc', 'false'), ('bool', 'slc', 'false'), ('bool', 'lds', 'false'), @@ -265,13 +268,7 @@ opcode("p_cbranch", format=Format.PSEUDO_BRANCH) opcode("p_cbranch_z", format=Format.PSEUDO_BRANCH) opcode("p_cbranch_nz", format=Format.PSEUDO_BRANCH) -opcode("p_memory_barrier_common", format=Format.PSEUDO_BARRIER) # atomic, buffer, image and shared -opcode("p_memory_barrier_atomic", format=Format.PSEUDO_BARRIER) -opcode("p_memory_barrier_buffer", format=Format.PSEUDO_BARRIER) -opcode("p_memory_barrier_image", format=Format.PSEUDO_BARRIER) -opcode("p_memory_barrier_shared", format=Format.PSEUDO_BARRIER) -opcode("p_memory_barrier_gs_data", format=Format.PSEUDO_BARRIER) -opcode("p_memory_barrier_gs_sendmsg", format=Format.PSEUDO_BARRIER) +opcode("p_barrier", format=Format.PSEUDO_BARRIER) opcode("p_spill") opcode("p_reload") |