On 04/21/10 11:57, Frank Isamov wrote:
Instructions which manipulate with data in parallel and have no data
dependency automatically require peephole2 definition or/and machine
dependent reorg pass. (Please see an example at the bottom of this
email). Peephole2 pattern, in this case, just repeat
Hi Ian,
On Wed, Apr 21, 2010 at 5:42 PM, Ian Lance Taylor wrote:
> Frank Isamov writes:
>
>> 2. A peephole for such case just repeats instruction definition
>> pattern. As all information already available for such peephole,
>> wouldn’t it be useful to implement the pass to be a part of the
>
On 04/21/10 00:39, Frank Isamov wrote:
On Mon, Apr 19, 2010 at 5:54 PM, Jeff Law wrote:
combine requires a data dependency, so for this situation, combine isn't
going to help. The easy solution is to create a peephole.You can also
create a machine dependent reorg pass to detect more of
On Wed, Apr 21, 2010 at 4:42 PM, Ian Lance Taylor wrote:
>> 2. A peephole for such case just repeats instruction definition
>> pattern. As all information already available for such peephole,
>> wouldn’t it be useful to implement the pass to be a part of the
>> standard infrastructure?
>
> See
Frank Isamov writes:
> 1. Is it possible to add a machine dependent reorg pass at backend
> level without changing the standard infrastructure? If so, can you
> please point me such example? If no, may the new plugin architecture
> help here?
See TARGET_MACHINE_DEPENDENT_REORG.
> 2. A peep
On Mon, Apr 19, 2010 at 5:54 PM, Jeff Law wrote:
>
> combine requires a data dependency, so for this situation, combine isn't
> going to help. The easy solution is to create a peephole. You can also
> create a machine dependent reorg pass to detect more of these opportunities.
> Jeff
>
Hi
On 04/19/10 06:58, Frank Isamov wrote:
Hi,
My architecture supports instructions with two parallel side effects.
For example, addition and subtraction can be done in parallel:
(define_insn "assi6"
[(parallel [
(set (match_operand:SI 0 "register_operand" "=r")
(minus:SI (matc
Hi,
My architecture supports instructions with two parallel side effects.
For example, addition and subtraction can be done in parallel:
(define_insn "assi6"
[(parallel [
(set (match_operand:SI 0 "register_operand" "=r")
(minus:SI (match_operand:SI 1 "register_operand" "r")