I am reading the manual "SDCC 3.3.2 $Date:: 2013-12-27 #$ $Revision: 8929 $", and have several questions.

1. Page 113

>> Note that local variables
>> and parameters are replaced by compiler generated temporaries. Live ranges are computed only for temporaries
>> (i.e. live ranges are not computed for global variables). Registers are allocated for temporaries only.

Why global variables are not replaced by temporaries? Do they attend live range analysis? Can they be in regiesters temporarily without memory writeback before their final values are determined?

2. Page 113
>> The compiler does not change the multiplication in
>> line 17 however since the processor does support an 8 * 8 bit multiplication

But it still can be optimized to addition as strength reduction. I can not understand why 8 * 8 bit multiplication affect ?