From: Ben S. <pow...@16...> - 2014-01-18 04:21:35
|
int aaa(int a, int b) { if (a > 0 || b > 0) return 1; else return -1; } |
From: Erik P. <epe...@iv...> - 2014-01-18 05:31:27
|
On Sat, 18 Jan 2014, Ben Shi wrote: > Hello, > > According to the "static operand *geniCodeLogicAndOr (ast * tree, int lvl) > " at line 2996 in SDCCicode.c, the generated iCode should have a falseLabel > in front of a trueLabel (line 3047 - 3055). > > However, I can see this with the attached dddd.c -> dddd.dumpraw0, > > but for the cccc.c -> cccc.dumpraw0, > 1. the trueLabel is missing > 2. the falseLabel is behind, not in front > > Ben iCodeLabelOptimize() runs before the dumpraw0 file is created and may change some things. If you use the --nolabelopt option to disable these optimizations, I think you will see what you are expecting. Erik |
From: Ben S. <pow...@16...> - 2014-01-19 03:04:56
|
Erik, What else optimizations should be disabled ? Since I want to see the real raw icode list by SDCCicode.c. Ben 在2014年01月18 13时31分,"Erik Petrich"<epe...@iv...>写道: On Sat, 18 Jan 2014, Ben Shi wrote: > Hello, > > According to the "static operand *geniCodeLogicAndOr (ast * tree, int lvl) > " at line 2996 in SDCCicode.c, the generated iCode should have a falseLabel > in front of a trueLabel (line 3047 - 3055). > > However, I can see this with the attached dddd.c -> dddd.dumpraw0, > > but for the cccc.c -> cccc.dumpraw0, > 1. the trueLabel is missing > 2. the falseLabel is behind, not in front > > Ben iCodeLabelOptimize() runs before the dumpraw0 file is created and may change some things. If you use the --nolabelopt option to disable these optimizations, I think you will see what you are expecting. --nolabelopt |
From: Erik P. <epe...@iv...> - 2014-01-20 06:35:18
|
On Sun, 19 Jan 2014, Ben Shi wrote: > Erik, > > What else optimizations should be disabled ? Since I want to see the real > raw icode list by SDCCicode.c. > > Ben Between the initial iCode generation and the .dumpraw0 file creation, the only optimization that I know of is iCodeLabelOptimize(), which can be disabled with --nolabelopt. Erik |