Some benchmarked instructions might set target state. Preserve this
state. See PR26418.
Details
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
Can you reformat to fix Lint errors as well.
llvm/tools/llvm-exegesis/lib/Target.h | ||
---|---|---|
178 | I find PreservedState a bit unclear. Maybe SavedState or SnapshotState is more explicit? No strong opinion though. |
Just recording here (previous discussion was here D90742) :
our internal buildbots at Azul has failed because of an older assembler. We’ve taken in all commits/reverts/relands w.r.t this change upto Nov 4th. I have reverted the change rG8383fddc4fa9 downstream and confirmed the build passes.
The specific failure is:
/tmp/cc2lBtEi.s: Assembler messages:
/tmp/cc2lBtEi.s:541: Error: no such instruction: `fxsave64 16(%rax)'
/tmp/cc2lBtEi.s:566: Error: no such instruction: `fxrstor64 16(%rdi)'
/tmp/cc2lBtEi.s:592: Error: no such instruction: `fxrstor64 16(%rdi)'
make[2]: *** [tools/llvm-exegesis/lib/X86/CMakeFiles/LLVMExegesisX86.dir/Target.cpp.o] Error 1
We use the GNU assembler and it is configured for 64 bit machines. Here's the details from one of the machines:
as --version GNU assembler version 2.20.51.0.2-5.47.el6_9.1 20100205 Copyright 2009 Free Software Foundation, Inc. This program is free software; you may redistribute it under the terms of the GNU General Public License version 3 or later. This program has absolutely no warranty. This assembler was configured for a target of `x86_64-redhat-linux'
This does look too old now (2009). For GCC, llvm-project currently requires at least 5.1 (2015). I'll not expect GCC 5.1 to ship a binutils from 2009:)
In addition, if you use -fintegrated-as, you don't need to worry about the version of GNU as.
I find PreservedState a bit unclear. Maybe SavedState or SnapshotState is more explicit? No strong opinion though.