|
Loading...
|
gcc-help@gcc.gnu.org
[Prev] Thread [Next] | [Prev] Date [Next]
Preventing scheduling of normal operations across calls to built-ins Ayonam Ray Mon Feb 20 14:00:53 2012
I have a set of built-ins implemented using unspec_volatile which set various processor control modes for rounding, overflow, etc. Now what I see is that if I call these builtins in between the arithmetic operations in C code, at -O1 and -O2, it puts together all those calls to the built-ins at the top of the function body and sends all the arithmetic operations below. Effectively, the arithmetic operations do not conform to the processor modes that I am setting. The same code works fine at -O0, i.e., the operations are not reordered (as expected). An example of such a test case is shown below: <quot> __builtin_mvc_to_ccr(0x0, CCR8); // Configuration for wrap_aroung logic... val = (intVal - oneVal); val += oneVal1; __builtin_mvc_to_ccr(0xffffffff, CCR8); // Configuration for saturation_logic.. val1 = __builtin_mvc_from_ccr(CCR8); val += val1; __builtin_mvc_to_ccr(0x0, CCR8); // Configuration for wrap_aroung logic... val1 = intVal; val += val1; <unquot> Here all the calls to the built-ins happen first and then the arithmetic operations. The built-in __builtin_mvc_to_ccr() is a void function. Where am I going wrong in my implementation? I have tried inserting calls to gen_blockage() and emit_barrier() around the place where I expand these built-ins. With gen_blockage() there is no effect and with the emit_barrier() the code generation stops beyond the point where the barrier is emitted. Thanks in advance. Regards Ayonam
- Preventing scheduling of normal operations across calls to built-ins Ayonam Ray 2012/02/20 <=
- Re: Preventing scheduling of normal operations across calls to built-ins Ian Lance Taylor 2012/02/20
- Re: Preventing scheduling of normal operations across calls to built-ins Mohamed Shafi 2012/02/21
- Re: Preventing scheduling of normal operations across calls to built-ins Ian Lance Taylor 2012/02/21
- Message not available
- Message not available
- Re: Preventing scheduling of normal operations across calls to built-ins Ayonam Ray 2012/02/21
- Re: Preventing scheduling of normal operations across calls to built-ins Ian Lance Taylor 2012/02/21
- Re: Preventing scheduling of normal operations across calls to built-ins Ayonam Ray 2012/02/21
- Re: Preventing scheduling of normal operations across calls to built-ins Ian Lance Taylor 2012/02/21
- Re: Preventing scheduling of normal operations across calls to built-ins Ayonam Ray 2012/02/21
- Re: Preventing scheduling of normal operations across calls to built-ins Ian Lance Taylor 2012/02/21
- Re: Preventing scheduling of normal operations across calls to built-ins Ayonam Ray 2012/02/22