Re: SMS issues

2012-07-19 Thread Alex Turjan
not able to handle such situation... or perhaps there is something which prevents the modulo scheduler from arriving to this situation? Alex --- On Thu, 7/19/12, Andrey Belevantsev wrote: > From: Andrey Belevantsev > Subject: Re: SMS issues > To: "Alex Turjan" > Cc: g

SMS issues

2012-07-18 Thread Alex Turjan
Im writing to you with respect to some strange SMS functionality. In the code bellow there are 2 instructions (a builtin store and a builtin load) as they appear in the program flow before SMS: (insn 134 133 135 12 tdscdma_pfu_ccdec.c:289 (set (mem:HI (plus:PSI (reg/v/f:PSI 185 [ ccdecI

Re: selective scheduler failure

2012-07-18 Thread Alex Turjan
I applied the new patch and it seams fine. Thanks! Alex --- On Wed, 7/18/12, Alexander Monakov wrote: > From: Alexander Monakov > Subject: Re: selective scheduler failure > To: "Alex Turjan" > Cc: "Alexander Monakov" , gcc@gcc.gnu.org > Date: Wednesday, J

Re: selective scheduler failure

2012-07-17 Thread Alex Turjan
kov > Subject: Re: selective scheduler failure > To: "Alex Turjan" > Cc: gcc@gcc.gnu.org > Date: Tuesday, July 17, 2012, 7:57 PM > On Tue, Jul 17, 2012 at 8:39 PM, Alex > Turjan > wrote: > > > > Hi, > > I tried the patch but it doesnt solve my problem. &g

Re: selective scheduler failure

2012-07-17 Thread Alex Turjan
bject: Re: selective scheduler failure > To: "Alex Turjan" > Cc: gcc@gcc.gnu.org > Date: Tuesday, July 17, 2012, 7:07 PM > > As a consequence inside > sel_remove_empty_bb I hit on the following assert: > > gcc_assert (in_current_region_p (merge_bb)); > > Sou

selective scheduler failure

2012-07-17 Thread Alex Turjan
Hi, I get an assert failure during a run of the selective scheduler. The problem is due to the implementation of maybe_tidy_empty_bb. Inside of it I see the following piece of code: /* If it is possible - merge BB with its predecessor. */ if (can_merge_blocks_p (bb->prev_bb, bb)) sel_merge_blocks

Re: Scheduling automaton question

2011-02-11 Thread Alex Turjan
Hi, According to me at this moment the scheduler does not support your needs. I was confronted with a similar problem as yours and I solved it by implementing the TARGET_SCHED_DFA_NEW_CYCLE hook. Inside of the function which supports this hook I choose/set the insn reservation that makes possib

Re: pipeline description

2010-11-12 Thread Alex Turjan
Alexander is right. Perhaps you can implement the TARGET_SCHED_ADJUST_COST , then catch in the debugger the two instructions that you expect to be scheduled together and see what the default latency is or if needed you may just adjust it to the proper value. Alex --- On Fri, 11/12/10, Alexande

unschedule insn functionality needed

2010-11-12 Thread Alex Turjan
Hi, Can anybody give me a hint on where (perhaps some branch) I can find functionality which allows during scheduling to un-schedule an instruction? I basically need a function that does the oposite of schedule_insn. During scheduling I want o schedule_insn(INSN), then check the ready_list and

Re: secondary reload via 2 intermediary registers

2010-10-19 Thread Alex Turjan
Hi Jeff, Thanks for answer. I managed to make use of an architecture trick which allows me to get the secondary reload via only one intermediary register, but still have some comments to what you wrote me. > > 1.Is it possible to do the secondary reload via 2 > intermediary registers? > > As far

secondary reload via 2 intermediary registers

2010-09-30 Thread Alex Turjan
Hi, I have 3 questions regarding secondary reload: 1.Is it possible to do the secondary reload via 2 intermediary registers? As far as I can see the insn that implements the secondary reload has to have 3 operands. 2. Is it possible that an instruction emitted during the secondary reload to ge

CFG traversal

2010-07-06 Thread Alex Turjan
Hi, Is there functionality in gcc based on which the CFG can be traversed in such a way that a node gets visited once all of its predecessors have been visited? thanks, Alex

Re: reload question

2010-06-23 Thread Alex Turjan
> insns which branch are not allowed to have output > reloads.  You must > support any kind of register as well as memory operands in > your insn for > the loop counter. Thanks for answer but what do you suggest to do, as my architecture done not support HW loops with memory operands? Alex

reload question

2010-06-23 Thread Alex Turjan
Hi, My port supports hardware loops generated by the following (do_end) pattern: (set (pc) (if_then_else (ne (match_operand:HI 0 "general_register_operand" "d") (const_int 0)) (label_ref (match_operand 1 "" "")) (pc)))

Re: Illegal schedule

2010-06-22 Thread Alex Turjan
> Do I have to reorganize the code prior to slot filling? Do > I have to make sure that some problematic instructions do > not appear in slots? Perhaps a easy way to solve the problem would be to claim for branches a memory port a number of stages before and after the IF; to avoid in this way ha

bug linear loop transforms

2010-03-29 Thread Alex Turjan
Im writing to you regarding a possible bug in linear loop transfor. The bug can be reproduce by compiling the attached c file with gcc.4.5.0 (20100204, 20100325) on x86 machine. The compiler flags that reproduce the error are: -O2 -fno-inline -fno-tree-ch -ftree-loop-linear If the compiler is ru

Re: question about DSE

2009-09-09 Thread Alex Turjan
Hi Michael, > My assumption would be these two split loads of HImode are > generated by your backend from a given SImode MEM. Indeed your asumption is right. Bellow I have a mulsi3 expand in which I generate insns of mode HI. operands[1] gets spilled: in the produced BB as a single SI store wh

question about DSE

2009-09-08 Thread Alex Turjan
Dear all, Im writing to you regarding the dead store elimination (dse) which runs after register allocation. Apparently dse removes wrongly the following store (present in bb2): (insn 374 47 52 2 test.c:107 (set (mem/c:SI (plus:PSI (reg/f:PSI 55 ptr15) (const_int 96 [0x60])) [19

Re: IRA undoing scheduling decisions

2009-08-27 Thread Alex Turjan
> With 4.4, IRA happens to reuse the same register for both pseudos, so > sched2 is hand tied and cannot schedule them back again for us. I can imagine compiling other programs for which preserving the 4.3 allocation will induce performance degradation due to spilling. The register allocator t

Re: Question about the difference between two instruction scheduling passes

2009-08-19 Thread Alex Turjan
> Gcc only does this work in the second pass, but what's the > point? Is it wrong or just not necessary in the first sched > pass? Regardless of the target architecture from the correctness point of view sched1 can be disabled. sched1 has as purpose shortening live ranges. Short live ranges allo

Re: scheduling question

2009-05-07 Thread Alex Turjan
--- On Thu, 5/7/09, Maxim Kuvyrkov wrote: > From: Maxim Kuvyrkov > Subject: Re: scheduling question > To: atur...@yahoo.com > Cc: "Vladimir Makarov" , gcc@gcc.gnu.org > Date: Thursday, May 7, 2009, 1:01 PM > Alex Turjan wrote: > > Hi, > > During schedu

scheduling question

2009-05-06 Thread Alex Turjan
Hi, During scheduling Im confronted with the fact that an instruction is moved from the ready list to queued with the cost 2, while according to my expectations the insn should have been moved to queued with cost 1. Did anybody experience similar problem? In case an insn is ready but can bot be

Re: Fwd: gcc instruction scheduling makes things worse?

2009-05-06 Thread Alex Turjan
> For data dependency cases, I do some jobs in > the adjust_cost target hook. Normally the scheduling takes into account the instruction latencies which you have specified: for load 2, for mul 4 and for alu 1. Why do you need to adjust the sched costs? Did you try simply without adjusting the c

Re: [gSoc] [graphite] general plan for Automatic parallelization in Graphite

2009-04-22 Thread Alex Turjan
Are there any plans to move the partial unrolling phase from RTL to Tree-SSA? The move would benefit from better (or easier to implement) Tree-SSA alias analysis. Alex > > > > > --- On Wed, 4/22/09, Li Feng > wrote: > > > From: Li Feng > > Subject: [gSoc] [graphite] general plan for Auto

Re: query automaton

2009-03-18 Thread Alex Turjan
tate. regards, Alex --- On Tue, 3/3/09, Vladimir Makarov wrote: > From: Vladimir Makarov > Subject: Re: query automaton > To: atur...@yahoo.com > Cc: gcc@gcc.gnu.org > Date: Tuesday, March 3, 2009, 4:35 PM > Alex Turjan wrote: > > Dear Vladimir, > >

Re: query automaton

2009-02-27 Thread Alex Turjan
Dear Vladimir, > Not really. There is no requirement for "the units > part of the alternatives of a reservation must belong to the > same automaton". Querying should also work in this > case because function cpu_unit_reservation_p checks all > automata for an unit reservation. Indeed it che

query automaton

2009-02-25 Thread Alex Turjan
Hello, Some time ago I asked a question regarding the possibility to schedule an operation on alternative functional units (FUs) AND depending on the chosen FUs to generate a dedicated assembly mnemonic. To give a simple example suppose I have a move operation that can be issued on one of the

Re: generate assembly mnemonic depending the resource allocation

2008-12-03 Thread Alex Turjan
Dear Ian, I use as atribute of one of the instructions the following define_insn_reservation: (define_insn_reservation "vmove" 1 "vector_type" "vmove") "c_valu_1|c_vlsu_1") As you can see vmove has two alternative reservation : c_valu_1 or c_vlsu_1, where c_valu_1 is defined as follows: (define

Re: generate assembly mnemonic depending the resource allocation

2008-12-03 Thread Alex Turjan
> Keep > track of the instruction slot, and set some global variable > in that macro. I see what you mean but for my target architecture the slots are not identical in sense that they are claiming totaly different resources. This means that in order to decide at a certain cycle which mnemonic

RE: generate assembly mnemonic depending the resource allocation

2008-12-03 Thread Alex Turjan
return "add-slot1, %0, %1, %2"; > } > } > [(set_attr "type" "alu") >(set_attr "mode" "SI") >(set_attr "length" "1")]) > > > -Original Message- > > From: [EMAIL PROTECT

generate assembly mnemonic depending the resource allocation

2008-12-03 Thread Alex Turjan
Hi all, Im building a gcc target for a vliw machine that can execute the same instruction on different resources (slots) and depending on which resources are allocate the instruction must have a different mnemonic. Is it possible in gcc to have for the same define_insn constraints (depending on

RE: Implement #pragma unroll?

2008-05-30 Thread Alex Turjan
gt; do you use for the > backend function? > > -Original Message- > From: [EMAIL PROTECTED] > [mailto:[EMAIL PROTECTED] On Behalf Of > Alex Turjan > Sent: 29 May 2008 14:45 > To: gcc@gcc.gnu.org > Subject: RE: Implement #pragma unroll? > > Dear Bingfeng, >

RE: Implement #pragma unroll?

2008-05-29 Thread Alex Turjan
Dear Bingfeng, Some time ago I had to deal with a similar issue as you. Basically I did as follows: I built a backend function which catches the unroll pragma and replaces it with a target assembly intrinsic (which of course has to be described in an .md file). After that in the RTL unroll phase, I

RTL alias analysis

2008-04-01 Thread Alex Turjan
of an article by Sanjiv Gupta and Naveen Sharma on alias analysis at the RTL level, which was published in the GCC 2003 summit. Are there any further gcc developments of this work or is there a patch concerning this work? thanks in advance, Alex Turjan