Jason Ekstrand
9800b81ffb
nir: Remove deref chain support from analyze_loops
...
Note that this patch needs to come late in the series since this pass
can be run after any pass that damages nir_metadata_loop_analysis.
Acked-by: Rob Clark <robdclark@gmail.com >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Acked-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
2018-06-22 21:23:06 -07:00
Rob Clark
2db8784167
freedreno/ir3: convert to deref instructions
...
Signed-off-by: Rob Clark <robdclark@gmail.com >
Acked-by: Rob Clark <robdclark@gmail.com >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Acked-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
2018-06-22 21:23:05 -07:00
Rob Clark
95683bdce3
nir: promote intrinsic_get_var() to helper
...
Useful in a few other places.. let's not copy-pasta
Signed-off-by: Rob Clark <robdclark@gmail.com >
Acked-by: Rob Clark <robdclark@gmail.com >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Acked-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
2018-06-22 20:54:00 -07:00
Jason Ekstrand
5a02ffb733
nir: Rework lower_locals_to_regs to use deref instructions
...
This completely reworks the pass to support deref instructions and
delete support for old deref chains
Acked-by: Rob Clark <robdclark@gmail.com >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Acked-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
2018-06-22 20:54:00 -07:00
Jason Ekstrand
2fa7a4a541
intel,ir3: Re-enable nir_opt_copy_prop_vars
...
Now that it's rewritten for deref instructions, we can turn it back on.
Acked-by: Rob Clark <robdclark@gmail.com >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Acked-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
2018-06-22 20:54:00 -07:00
Bas Nieuwenhuizen
67df3739c5
radeonsi: Remove deref chain support in nir scan pass.
...
Acked-by: Rob Clark <robdclark@gmail.com >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Acked-by: Dave Airlie <airlied@redhat.com >
2018-06-22 20:54:00 -07:00
Bas Nieuwenhuizen
9cb345588b
radv: Remove deref chain support in radv shader info pass.
...
Acked-by: Rob Clark <robdclark@gmail.com >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Acked-by: Dave Airlie <airlied@redhat.com >
2018-06-22 20:54:00 -07:00
Bas Nieuwenhuizen
a1e9d799ad
ac/nir: Remove deref chain support.
...
Acked-by: Rob Clark <robdclark@gmail.com >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Acked-by: Dave Airlie <airlied@redhat.com >
2018-06-22 20:54:00 -07:00
Bas Nieuwenhuizen
9bfd81b217
radeonsi: Add deref support to the nir scan pass.
...
Acked-by: Rob Clark <robdclark@gmail.com >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Acked-by: Dave Airlie <airlied@redhat.com >
2018-06-22 20:54:00 -07:00
Jason Ekstrand
ba2bd20f87
nir: Rework opt_copy_prop_vars to use deref instructions
...
Acked-by: Rob Clark <robdclark@gmail.com >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Acked-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
2018-06-22 20:54:00 -07:00
Jason Ekstrand
fa6ffcc083
nir/copy_prop_vars: Re-order some logic in compare_derefs
...
Acked-by: Rob Clark <robdclark@gmail.com >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Acked-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
2018-06-22 20:54:00 -07:00
Jason Ekstrand
c5d9a65944
nir: Remove deref chain support from split_per_member_structs
...
Acked-by: Rob Clark <robdclark@gmail.com >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Acked-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
2018-06-22 20:54:00 -07:00
Jason Ekstrand
18175ab66f
nir: Remove deref chain support from opt_undef
...
Acked-by: Rob Clark <robdclark@gmail.com >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Acked-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
2018-06-22 20:54:00 -07:00
Jason Ekstrand
aeb4bbfd1e
nir: Remove deref chain support from split_var_copies
...
Acked-by: Rob Clark <robdclark@gmail.com >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Acked-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
2018-06-22 20:54:00 -07:00
Jason Ekstrand
636256cdc7
nir: Remove deref chain support from dead_variables
...
Acked-by: Rob Clark <robdclark@gmail.com >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Acked-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
2018-06-22 20:54:00 -07:00
Jason Ekstrand
378d7cf3ba
nir: Remove deref chain support from propagate_invariant
...
Acked-by: Rob Clark <robdclark@gmail.com >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Acked-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
2018-06-22 20:54:00 -07:00
Jason Ekstrand
c6a9c2b60b
nir: Remove deref chain support from lower_var_copies
...
Acked-by: Rob Clark <robdclark@gmail.com >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Acked-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
2018-06-22 20:54:00 -07:00
Jason Ekstrand
fc59230a46
nir: Remove deref chain support from lower_drawpixels
...
Acked-by: Rob Clark <robdclark@gmail.com >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Acked-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
2018-06-22 20:54:00 -07:00
Jason Ekstrand
d4dd2ca4a7
nir: Remove deref chain support from opt_peephole_select
...
Acked-by: Rob Clark <robdclark@gmail.com >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Acked-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
2018-06-22 20:54:00 -07:00
Jason Ekstrand
54bfc0cbcf
nir: Remove deref chain support from lower_tex
...
Acked-by: Rob Clark <robdclark@gmail.com >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Acked-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
2018-06-22 20:54:00 -07:00
Jason Ekstrand
a3589bb01f
nir: Remove deref chain support from lower_wpos_ytransform
...
Acked-by: Rob Clark <robdclark@gmail.com >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Acked-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
2018-06-22 20:54:00 -07:00
Jason Ekstrand
3992665c52
nir: Remove deref chain support from lower_wpos_center
...
Acked-by: Rob Clark <robdclark@gmail.com >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Acked-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
2018-06-22 20:54:00 -07:00
Jason Ekstrand
8a62db7712
nir: Remove deref chain support from lower_system_values
...
Acked-by: Rob Clark <robdclark@gmail.com >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Acked-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
2018-06-22 20:54:00 -07:00
Jason Ekstrand
e5db1b951c
nir: Remove deref chain support from remove_unused_varyings
...
Acked-by: Rob Clark <robdclark@gmail.com >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Acked-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
2018-06-22 20:54:00 -07:00
Jason Ekstrand
6bdd867968
nir: Delete lower_io_types
...
It's only used by the ir3 stand-alone compiler and Rob said we could
delete it.
Acked-by: Rob Clark <robdclark@gmail.com >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Acked-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
2018-06-22 20:54:00 -07:00
Jason Ekstrand
c6fc653232
nir: Remove deref chain support from lower_phis_to_scalar
...
Acked-by: Rob Clark <robdclark@gmail.com >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Acked-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
2018-06-22 20:54:00 -07:00
Jason Ekstrand
47ffb893e6
nir: Convert lower_io to deref instructions
...
This deletes support for _var intrinsics and legacy deref chains in
favor of deref instructions. The internals are also reworked a bit to
use deref instructions directly.
Acked-by: Rob Clark <robdclark@gmail.com >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Acked-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
2018-06-22 20:54:00 -07:00
Jason Ekstrand
0d03c63e91
nir/lower_io: Convert atomic lowering to deref instructions
...
No one is currently using so we can make this change irrespective of
driver. We may use it again in i965 so it's best to pretend to keep it
working.
Acked-by: Rob Clark <robdclark@gmail.com >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Acked-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
2018-06-22 20:54:00 -07:00
Jason Ekstrand
c290e8c4b0
nir: Remove deref chain support from lower_global_vars_to_local
...
Acked-by: Rob Clark <robdclark@gmail.com >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Acked-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
2018-06-22 20:54:00 -07:00
Jason Ekstrand
41c52c963a
nir: Remove deref chain support from lower_clamp_color_outputs
...
Acked-by: Rob Clark <robdclark@gmail.com >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Acked-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
2018-06-22 20:54:00 -07:00
Jason Ekstrand
d2adc08abe
nir: Remove deref chain support from lower_alpha_test
...
Acked-by: Rob Clark <robdclark@gmail.com >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Acked-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
2018-06-22 20:54:00 -07:00
Jason Ekstrand
81f29d6d33
nir: Remove deref chain support from lower_atomics
...
Acked-by: Rob Clark <robdclark@gmail.com >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Acked-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
2018-06-22 20:54:00 -07:00
Jason Ekstrand
4b0ea65333
nir: Remove deref chain support from lower_clip_cull_distance_arrays
...
Acked-by: Rob Clark <robdclark@gmail.com >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Acked-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
2018-06-22 20:54:00 -07:00
Jason Ekstrand
a42af8d0d6
nir: Remove deref chain support from lower_indirect_derefs
...
Acked-by: Rob Clark <robdclark@gmail.com >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Acked-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
2018-06-22 20:54:00 -07:00
Jason Ekstrand
69866af357
nir: Rework gather_info to entirely use deref instructions
...
Acked-by: Rob Clark <robdclark@gmail.com >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Acked-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
2018-06-22 20:54:00 -07:00
Jason Ekstrand
b1a18b8797
nir/vars_to_ssa: Rework to entirely use deref instructions
...
This commit reworks nir_lower_vars_to_ssa to use deref instructions and
deref paths internally instead of deref chains. We also drop support
for the old load/store/copy_var intrinsics.
Acked-by: Rob Clark <robdclark@gmail.com >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Acked-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
2018-06-22 20:54:00 -07:00
Jason Ekstrand
f747ff1969
nir/vars_to_ssa: Add an is_direct field to deref_node
...
This makes us build the is_direct parameter as the nodes are constructed
rather than as we walk the chain. This will be useful later.
Acked-by: Rob Clark <robdclark@gmail.com >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Acked-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
2018-06-22 20:54:00 -07:00
Eric Anholt
e1f0a1b029
broadcom/vc4: Remove deref chain support from nir_lower_txf_ms.
...
Acked-by: Rob Clark <robdclark@gmail.com >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Acked-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
2018-06-22 20:54:00 -07:00
Rob Clark
3d19f116ad
st,ir3,radeonsi: push lower_deref_instrs back into driver
...
vc4+vc5 is not really effected by the deref chain to deref instr
conversion, so it no longer needs this pass. For others, now that
all the passes mesa/st uses are using deref instructions, push the
lowering to deref chains back into driver.
Signed-off-by: Rob Clark <robdclark@gmail.com >
Acked-by: Rob Clark <robdclark@gmail.com >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Acked-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
2018-06-22 20:54:00 -07:00
Rob Clark
3e8879be5c
nir/lower_samplers: remove legacy version
...
Signed-off-by: Rob Clark <robdclark@gmail.com >
Acked-by: Rob Clark <robdclark@gmail.com >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Acked-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
2018-06-22 20:54:00 -07:00
Rob Clark
a20929fed2
nir: convert lower_samplers_as_deref to deref instructions
...
This also removes the legacy version of lower_samplers.
Signed-off-by: Rob Clark <robdclark@gmail.com >
Acked-by: Rob Clark <robdclark@gmail.com >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Acked-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
2018-06-22 20:54:00 -07:00
Rob Clark
0bc15340be
mesa/st: re-enable lower_io_to_elements()
...
Signed-off-by: Rob Clark <robdclark@gmail.com >
Acked-by: Rob Clark <robdclark@gmail.com >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Acked-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
2018-06-22 20:54:00 -07:00
Rob Clark
245ce114c9
nir: convert lower_io_arrays_to_elements to deref instructions
...
Signed-off-by: Rob Clark <robdclark@gmail.com >
Acked-by: Rob Clark <robdclark@gmail.com >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Acked-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
2018-06-22 20:54:00 -07:00
Rob Clark
c409cfddcf
mesa/st/nir: convert lower_builtins to deref instructions
...
Signed-off-by: Rob Clark <robdclark@gmail.com >
Acked-by: Rob Clark <robdclark@gmail.com >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Acked-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
2018-06-22 20:54:00 -07:00
Rob Clark
3859e0b4fe
mesa/st: temporarily disable lower_io_to_elements()
...
Not required for correctness, and makes the order of converting passes
to deref instructions hard to get right for both prog_to_nir and
glsl_to_nir cases.
Signed-off-by: Rob Clark <robdclark@gmail.com >
Acked-by: Rob Clark <robdclark@gmail.com >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Acked-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
2018-06-22 20:54:00 -07:00
Rob Clark
c6009a1e8e
nir: convert lower_io_to_scalar to deref instructions
...
Signed-off-by: Rob Clark <robdclark@gmail.com >
Acked-by: Rob Clark <robdclark@gmail.com >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Acked-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
2018-06-22 20:54:00 -07:00
Rob Clark
d143f6c856
move lower_deref_instrs
...
Signed-off-by: Rob Clark <robdclark@gmail.com >
Acked-by: Rob Clark <robdclark@gmail.com >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Acked-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
2018-06-22 20:54:00 -07:00
Jason Ekstrand
d7b0be48ef
nir: Use deref instructions in lower_constant_initializers
...
Acked-by: Rob Clark <robdclark@gmail.com >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Acked-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
2018-06-22 20:54:00 -07:00
Jason Ekstrand
85f4149f8a
nir/builder: Use deref instructions for load/store/copy_var
...
Acked-by: Rob Clark <robdclark@gmail.com >
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Acked-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
2018-06-22 20:54:00 -07:00
Bas Nieuwenhuizen
3573570afe
radv: Disable lower_io_to_temporaries during deref changes.
...
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Acked-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
2018-06-22 20:54:00 -07:00