This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: Reload problem


Jeffrey A Law <law@cygnus.com> writes:

|>   In message <jevh7bqzjj.fsf@hawking.suse.de>you write:
|> 
|>   > |> (define_expand "divmodsi4"
|>   > |>   [(set (match_operand:SI 0 "general_operand" "")
|>   > |>         (div:SI (match_operand:SI 1 "general_operand" "")
|>   > |>                 (match_operand:SI 2 "general_src_operand" "")))
|>   > |>    (set (match_operand:SI 3 "general_operand" "")
|>   > |>         (mod:SI (match_dup 1) (match_dup 2)))]
|>   > |>   "TARGET_68020 && !TARGET_5200"
|>   > |>   "")
|>   > 
|>   > Thanks, that does help (after putting the required parallel around the
|>   > sequence).  What I still wonder is why this hasn't been yet triggered on
|>   > the other architectures that have pretty much the same patterns.
|> 1. I don't see why you need expanders + patterns.  There's no reason why
|>    the expander can't serve both purposes.  If Joern thinks otherwise he
|>    should provide more details.
|> 
|> 2. According to expand_twoval_binop the operands should be numbered:
|> 
|>    operand0 -- target 0
|>    operand1 -- input 0
|>    operand2 -- input 1
|>    operand3 -- target 1
|> 
|>    So I think the original ordering of operands was correct.
|> 
|> So basically, I don't see what was wrong with the original define_insn.

The problem lies in the order that the reloads are emitted.  I have posted
a more detailed description in my original mail
(http://egcs.cygnus.com/ml/gcc/1999-09/msg00264.html).  Unfortunately, the
problem cannot be reproduced with the current cvs, but since the reload
combination code is basically unchanged I think that the problem still
exists.

Andreas.

-- 
Andreas Schwab                                  "And now for something
SuSE Labs                                        completely different."
schwab@suse.de
SuSE GmbH, Schanzäckerstr. 10, D-90443 Nürnberg


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]