sdcc/src/SDCCopt.c line 3309: if (optimize.lospre && (TARGET_Z80_LIKE || TARGET_HC08_LIKE || TARGET_IS_STM8)) / For mcs51, we get a code size regression with lospre enabled, since the backend can't deal well with the added temporaries / If add back the optimization in this line for mcs51, the bug will be disappeared. I don't know why pdk15 has not that problem. I just don't understand the corresponding optimization procedure. Is there any more documents for the optimizations?
https://sourceforge.net/p/sdcc/bugs/3642/ Anyone help? Appreciated. Chingson
Missed complement operation after lrange optimization
As my experiences, SDCC that formerly designed for 8-bit targets is usually easier to optimize machine codes in 8-bit domain. For example, long foo(long k) { if(k&0x100) bar(); ... return 0; } The "k&0x100" operation in 8-bit domain sometimes can be done in a bit instruction. However, for LLVM/GCC developers .. such kind of optimization is really a headache. But for SDCC developers, such optimization is generally not so hard. Another point of view is that GCC/LLVM usually deals with large code size,...
Dear Sirs, I cannot build sdcpp from sdcpp.vcxproj (under win-10)after gcc patch merged. Any help?
PIC14 port does not update (volatile) global variable in some situations
Visual Studio has smart build and auto-multi-thread seems faster than single thread build under Linux (VM). Also switching between Release/Debug is easy. Today VSCODE+CPPDBG debugging SDCC under Linux (VM) is pretty comfortable. Using Linux to develop SDCC has a major benefit that it has "much" faster EXT4 than NTFS and fast console-IO. Also, usually Linux has /dev/shm can be used as RAM-DISK, which is even faster. My experience is that Linux VM can do the regression test many timers faster than...
I found the "st_link" type-chain used in "symtab.h" has reserved "v_enum" in "const_val" field of the specifier. But seems it is not assigned (yet) in current version SDCC. BTW, I can not find the trace of "typedef" statements in the back-end either. Without those information, the code output is still correct. But when debugging , the corresponding "ENUM" item is not shown, and show memory that "casting" to the type that "typedef" defined is not available. The features above seems not important for...