On 06/06/13 22:03, Mans Rullgard wrote:
On 6 June 2013 12:09, Kugan kugan.vivekanandarajah@linaro.org wrote:
On 05/06/13 21:27, Matthew Gretton-Dann wrote:
Kugan,
I don't have the source code to hand but how are the sin()/cos()->sincos() optimizations handled?
Thanks Matt. There is a tree level pass to combine sin()/cos() into sincos(). Commit that added this is: http://gcc.gnu.org/viewcvs/gcc?view=revision&revision=121052. We can try doing same thing similar here.
Is there anyway we can know in the tree level that the target does not define integer divide?
Some targets, e.g. MIPS, have a combined div/mod instruction. Those could benefit from this as well, unless they already achieve that optimisation differently.
Thanks Mans. I will have a look at MIPS port.
Availability of sincos in the target is specified with the define TARGET_HAS_SINCOS and it is being used in tree level optimizations. We can do something similar (?) to get the information about availability of ops/run time library call to consider optimizing.
Thanks, Kugan