This is the mail archive of the gcc-bugs@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]

[Bug target/40419] __attribute__((mips16)) is broken on trunk.



------- Comment #2 from zadeck at naturalbridge dot com  2010-06-04 17:18 -------
I would just like to say that i think that target_reinit should be removed.  
It is nothing but trouble.   We tried to use it on our private port and it was
very slow and most of the time ended up crashing.   Furthermore, when we got
down to the end, we discovered that in fact it does not end up calling
everything that was needed to reinitialize ira.   

Our platform has a register architecture like a sparc but it has a variable
number of ins and outs.   The exact number of ins depends on the function
signature and the number of outs depends on the signatures of the callees.   
So we tried using target_reinit to reset the register allocator after we had
seen the caller to the function and all of the callees.   

in the end we added a special pass that does an reinit_regs () before ira.  
This sped up our compiler by about 4x.  (i.e target_reinit is not just buggy,
it is slow.)

Note that target_reinit does not do a reinit_regs and so it actually does not
really reinitialize the target, at least as far as ira is concerned.  


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40419


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