GBE: refine the gen program strategy.
authorZhigang Gong <zhigang.gong@intel.com>
Thu, 24 Apr 2014 02:09:13 +0000 (10:09 +0800)
committerZhigang Gong <zhigang.gong@intel.com>
Mon, 28 Apr 2014 02:48:52 +0000 (10:48 +0800)
commitb45252bc627dd6ceaff9a1998a5379452cf80e29
tree6331d8f783f301754f0dfe0b0efe22f219a8b938
parent21497f399ff2429e2ebb8ad240d1445b8a5b9d50
GBE: refine the gen program strategy.

The limitRegisterPressure only affects the MAD pattern matching
which could not bring noticeable difference here. I change it to always
be false. And add the reserved registers for spill to the strategy
structure. Thus we can try to build a program as the following
strategy:

1. SIMD16 without spilling
2. SIMD16 with 10 spilling registers and with a default spilling threshold
   value 16. When need to spill more than 16 registers, we fall back to next
   method.
3. SIMD8 without spilling
4. SIMD8 with 8 spilling registers.

Signed-off-by: Zhigang Gong <zhigang.gong@intel.com>
Reviewed-by: "Song, Ruiling" <ruiling.song@intel.com>
backend/src/backend/gen_context.cpp
backend/src/backend/gen_context.hpp
backend/src/backend/gen_insn_selection.cpp
backend/src/backend/gen_program.cpp
backend/src/backend/gen_reg_allocation.cpp
backend/src/backend/gen_reg_allocation.hpp