Firm Bugtracker - libFirm
Viewing Issue Advanced Details
60 optimisations minor always 2010-10-04 15:25 2011-06-17 20:21
Matze  
 
normal  
closed development  
fixed  
none    
none  
0000060: irarch and doubleword modes
irarch does not work with doubleword modes. For example it often aborts early if it encounters shift-counts >= 32 which indeed the backend does not support but which would still make sense for doubleword instructions which are not lowered yet. This currently has the effect that doubleword shifts get transformed to muls and never turned back.
I don't know the code enough at the moment to decide wether irarch should handle the doubleword stuff as well or wether we should separately add handling for doubleword instructions.
Obvious example:
unsigned long long shl(unsigned long long x) { return x << 32; }

gets transformed to a 64-bit mul (on ia-32) instead of the obvious copy + xor!
Issue History
2010-10-04 15:25 Matze New Issue
2010-10-04 15:25 Matze Status new => confirmed
2011-06-17 20:21 Matze Note Added: 0000105
2011-06-17 20:21 Matze Status confirmed => closed
2011-06-17 20:21 Matze Resolution open => fixed

Notes
(0000105)
Matze   
2011-06-17 20:21   
appears to be fixed by now.