This is the mail archive of the gcc@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]
Other format: [Raw text]

Re: gcc port to StarCore


Alan,

Thank you very much for your help and assistance!

Do you think that poor quality of the code for loops, generated by my port
( that I reported earlier ), may be caused by the way I am ( currently )
handling integer compare?

I hope I will be able to improve generated code based of your advice.

Thanks again.

Regards,

David Livshin
dlivshin@internet-zahav.net
Tel:      +972 - 8 - 935 - 4597
Mobile: +972 - 67 - 290 - 998
Laskov 11/31
Rehovot, 76654
Israel

http://www.dalsoft.esmartweb.com/


----- Original Message -----
From: Alan Lehotsky <apl@alum.mit.edu>
To: David Livshin <dlivshin@zahav.net.il>
Cc: <gcc@gcc.gnu.org>
Sent: Thursday, May 02, 2002 5:01 PM
Subject: Re: gcc port to StarCore


> BINGO.  The RTL dump would have shown us an UNSPEC in the chain AND
> the compiler doesn't know
> ANYTHING about UNSPECs.  [Gee, it might be a good thing to add a
> "remark" to the Porting guide near the definition and examples of
> UNSPEC to warn people about this - I remember it biting me about 5
> years ago while working on the SHARC port.]
>
> You really don't want to use UNSPEC for things that have any
> "reasonable" semantic meaning
> that can be expressed in the standard RTL.
>
>
> At 5:36 PM +0200 5/2/02, David Livshin wrote:
> >......
> >  > 2/ the DEFINE_INSNs for compares
> >
> >after expanding "cmpsi" as described above I expand conditional jumps (
e.g.
> >"bgt" ) emitting, among other things,
> >
> >      emit_insn( gen_cmpsiEXPANDED( StarCore_cmp.op0, StarCore_cmp.op1,
> >                                     GEN_INT( ( int )cndt_code ),
> >                                     gen_reg_rtx( SImode ) ) );
> >
> >where:
> >
> >
> >( define_insn "cmpsiEXPANDED"
> >   [ ( parallel [ ( unspec:SI [ ( match_operand:SI 0 "drREG_operand"
"d,z" )
> >                                ( match_operand:SI 1 "drREG_operand"
"d,z" )
> >                                ( match_operand:SI 2 "immediate_operand"
"" )
> >                              ]
> >                              UNSPEC_CMPsi
> >                  )
> >                  ( set ( cc0 ) ( match_operand:SI 3 "" "" ) )
> >                ]
> >     )
> >   ]
> >   ""
> >   "* return (char *)StarCore_DefineInsn_cmpsi( operands, insn );"
> >)
> >
> >with StarCore_DefineInsn_cmpsi being routine that just emits StarCore
> >machine code.
> >
> >Is "unspec' what is preventing constant holding in compare?
>
>
> --
>     Quality Software Management
> http://home.earthlink.net/~qsmgmt
>           apl@alum.mit.edu
>           (978)287-0435 Voice
>           (978)808-6836 Cell
>
> Software Process Improvement / Management Consulting
>      Language Design / Compiler Implementation



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