EPPL  0.1 alpha
 All Files Typedefs Groups Pages
Todo List
Page Compilation time problem
Optimize compilation time by
  • Changing macros to inline function everywhere where it is possible. This should improve times for preprocessing (less postprocessor code generated) and lexical analysis + parsing (less tokens to parse).
  • Try to remove EPPL_GETSUBSET macro and replace it by EPPL_PROCESSEVERYPIN. It is much more universal and it should be possible after generation macros changes.
  • After tested point above - optimize EPPL_PROCESSEVERYPIN macro by unwinding it. It should optimize preprocessing time (preprocessor have to do less loop through whole file).
Global EPPL_avr8_generateMapOutToOnePortOpt (repeatcntd, flags, mode, val, pins...)
Macro optimizes complex transfer in situation when DDR and PORT registers are changed. But it generates a lot of unneded code when only one of the registers are modified. It should be optimized.
Global EPPL_avr8_mapInFromOnePort (pout, port, temp, direct, pins...)

Upgrade this macro to support 32 bits in one call.

Instruction that maps e.g. pins 2 and 1 from port, still uses 16 bits shifts internally. There is really a lot of badly looking explicitly casting to tell the compiler that result of operation should be 8 bit. It covers some operations but still not all. Try to avoid this. Check this path: http://gcc.gnu.org/ml/gcc-patches/2008-12/msg00905.html

Group EPPL_TARGET_AVR8

Prefer static inline functions rather than macros everywhere where it is possible to speed up compilation time

Simplify Hot Registers analysing by using flags internally rather than lists. Also doing so, will make it posible to support hotpins even better - it gives the posibility to send hotpins information via function argument.

Group EPPL_TARGET_AVR8_MODES

Some AVR microcontrollers have possibility to disable digital input buffer. It is used for analog input configuration. Make it possible to specify that configuration from the library.