i965: Use immediate storage in brw_reg for visitor regs.

Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
i965: Drop imm union from visitor register classes.

Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
i965: Make a common backend_reg class.

Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
i965: Move is_zero/one/null/accumulator into backend_reg.

Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
i965: Use enum brw_reg_type for register types.

Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
i965: Move common fields into backend_instruction.

Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
i965: Make a brw_conditional_mod enum.

Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
i965: Make a brw_predicate enum.

Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
i965: Repack backend_instruction struct.

Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
i965/cfg: Make cfg_t usable from C.

Acked-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
i965: Make backend_instruction usable from C.

With a hack to place an exec_node in the struct in C to be at the same
location as the inherited exec_node in C++.

Acked-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
i965: Rename intel_asm_printer -> intel_asm_annotation.

The #ifndef include guards already said the right thing :)

Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
i965: Move assembly annotation functions to intel_asm_annotation.c.

It's C. Compile it as such.

Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
gallium/radeon: use PRIX64 instead of PRIu64

We want hex values here, not decimals.

Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
i965: Fix warnings introduced in commit e24ef5ab.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
i965/vec4: Add basic common subexpression elimination.

[mattst88]: Modified to perform CSE on instructions with
            the same writemask. Offered no improvement before.

total instructions in shared programs: 1995633 -> 1995185 (-0.02%)
instructions in affected programs:     14410 -> 13962 (-3.11%)

Reviewed-by: Matt Turner <mattst88@gmail.com>
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
i965/vec4: Improve CSE performance by expiring some available expressions.

Port of commit 5daf867f to the vec4 code.
i965/vec4: Don't emit null MOVs in CSE.

Port of commit 219b43c6 to the vec4 code.
i965/vec4: Perform CSE on CMP(N) instructions.

Port of commit b16b3c87 to the vec4 code.

No shader-db improvements, but might as well. The fs backend saw an
improvement because it's scalar and multiple identical CMP instructions
were generated by the SEL peepholes.
i965/fs: Disable unlit_centroid_workaround on Haswell.

Although the HSW PRM shows it, the BSpec lists this workaround as being
for Ivybridge only.

total instructions in shared programs: 1994951 -> 1993675 (-0.06%)
instructions in affected programs:     27325 -> 26049 (-4.67%)