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]

expand and truncate and 387


Hi
I am just looking at expand and truncate patterns. Since i387 holds all data
in same registers and form, they are not required in reg-to-reg cases.
Because they are extremly slow (done by writing to memory and reading back)
it is significant to avoid them (I think people often mix float and double
code just because many programmers use float and all functions are double)
I386.md partially handles this by patterns for each operation with first
extend, second extend and both extended.
This way is bit suboptimal. It makes hard to add new patterns and eliminate
just extensions and just in case only one extension is done.
I am not sure whether eliminating truncate in all cases is corret, but at least
it is good -ffast-math or -mno-ieee-fp candidate.
I think I can halde this by mach operator matching eighter truncate or extend.
Problem is that it still does not solve problem with nested retypes and I should
need to duplicate many patterns (that actually isn't) like important pushing onto
stack case (often used when calling functions) and so on.

Isn't possible to write instruction pattern that match eighter register or
register with truncate/extend expressions? using special predicate or so?


Honza
-- 
                       OK. Lets make a signature file.
+-------------------------------------------------------------------------+
|        Jan Hubicka (Jan Hubi\v{c}ka in TeX) hubicka@freesoft.cz         |
|         Czech free software foundation: http://www.freesoft.cz          |
|AA project - the new way for computer graphics - http://www.ta.jcu.cz/aa |
|  homepage: http://www.paru.cas.cz/~hubicka/, games koules, Xonix, fast  |
|  fractal zoomer XaoS, index of Czech GNU/Linux/UN*X documentation etc.  | 
+-------------------------------------------------------------------------+


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