Displaying 4 results from an estimated 4 matches for "d6629".
Did you mean:
6629
2015 Jul 30
2
[LLVMdev] optimizer clobber EFLAGS
...g it :-)
I can get back to it if there's interest!
On Wed, Jul 29, 2015 at 4:12 PM, Reid Kleckner <rnk at google.com> wrote:
> I remember this bug. :) IMO, LLVM should never emit pushf / popf. I'm not
> sure this patch to fix it ever got committed:
> http://reviews.llvm.org/D6629
>
>
> On Wed, Jul 29, 2015 at 3:11 PM, Michael Hordijk <hoffbrinkle at hotmail.com>
> wrote:
>
>>
>> Using Clang/LLVM 3.6.0 we are observing a case where the optimizations
>> are clobbering EFLAGS on x86_64. This is inconvenient when the status of
>> bi...
2015 Jul 31
0
[LLVMdev] optimizer clobber EFLAGS
...> Agreed, never emit pushf/popf. Sorry I never committed the patch, the
> cmov issue got hairy and I never got to debugging it :-)
> I can get back to it if there's interest!
You've definitely got some interest here. I've been looking at your
patch on http://reviews.llvm.org/D6629 and I think I'm up to speed on
where it's stuck. I'll shoot you an email directly unless you want to
keep the effort here on the list.
- michael
2015 Jul 29
0
[LLVMdev] optimizer clobber EFLAGS
I remember this bug. :) IMO, LLVM should never emit pushf / popf. I'm not
sure this patch to fix it ever got committed:
http://reviews.llvm.org/D6629
On Wed, Jul 29, 2015 at 3:11 PM, Michael Hordijk <hoffbrinkle at hotmail.com>
wrote:
>
> Using Clang/LLVM 3.6.0 we are observing a case where the optimizations are
> clobbering EFLAGS on x86_64. This is inconvenient when the status of bit 9
> (IF), which controls interrupts, ch...
2015 Jul 29
2
[LLVMdev] optimizer clobber EFLAGS
Using Clang/LLVM 3.6.0 we are observing a case where the optimizations
are clobbering EFLAGS on x86_64. This is inconvenient when the status
of bit 9 (IF), which controls interrupts, changes.
Here's a simple test program. Assume that the external function foo()
modifies the IF bit in EFLAGS.
---
#include <stdlib.h>
#include <stdbool.h>
void foo(void);
int a;
int bar(void)