summaryrefslogtreecommitdiffstats
path: root/llvm/tools/llvm-mca/lib
diff options
context:
space:
mode:
authorAndrea Di Biagio <Andrea_DiBiagio@sn.scee.net>2018-11-24 18:40:45 +0000
committerAndrea Di Biagio <Andrea_DiBiagio@sn.scee.net>2018-11-24 18:40:45 +0000
commit42720603c44a398b0ffeeecf8d15dc9adf808e17 (patch)
tree331fe0ac6f015347fd0a100a05d8d78942cd37eb /llvm/tools/llvm-mca/lib
parente0466f570e6cd170f74da8e8557e9e511f7c10c0 (diff)
downloadbcm5719-llvm-42720603c44a398b0ffeeecf8d15dc9adf808e17.tar.gz
bcm5719-llvm-42720603c44a398b0ffeeecf8d15dc9adf808e17.zip
[llvm-mca] InstrBuilder: warnings for call/ret instructions are only reported once.
llvm-svn: 347514
Diffstat (limited to 'llvm/tools/llvm-mca/lib')
-rw-r--r--llvm/tools/llvm-mca/lib/InstrBuilder.cpp9
1 files changed, 6 insertions, 3 deletions
diff --git a/llvm/tools/llvm-mca/lib/InstrBuilder.cpp b/llvm/tools/llvm-mca/lib/InstrBuilder.cpp
index b6c6a01d5ed..f691f466640 100644
--- a/llvm/tools/llvm-mca/lib/InstrBuilder.cpp
+++ b/llvm/tools/llvm-mca/lib/InstrBuilder.cpp
@@ -29,7 +29,8 @@ InstrBuilder::InstrBuilder(const llvm::MCSubtargetInfo &sti,
const llvm::MCInstrInfo &mcii,
const llvm::MCRegisterInfo &mri,
const llvm::MCInstrAnalysis &mcia)
- : STI(sti), MCII(mcii), MRI(mri), MCIA(mcia) {
+ : STI(sti), MCII(mcii), MRI(mri), MCIA(mcia), FirstCallInst(true),
+ FirstReturnInst(true) {
computeProcResourceMasks(STI.getSchedModel(), ProcResourceMasks);
}
@@ -455,17 +456,19 @@ InstrBuilder::createInstrDescImpl(const MCInst &MCI) {
std::unique_ptr<InstrDesc> ID = llvm::make_unique<InstrDesc>();
ID->NumMicroOps = SCDesc.NumMicroOps;
- if (MCDesc.isCall()) {
+ if (MCDesc.isCall() && FirstCallInst) {
// We don't correctly model calls.
WithColor::warning() << "found a call in the input assembly sequence.\n";
WithColor::note() << "call instructions are not correctly modeled. "
<< "Assume a latency of 100cy.\n";
+ FirstCallInst = false;
}
- if (MCDesc.isReturn()) {
+ if (MCDesc.isReturn() && FirstReturnInst) {
WithColor::warning() << "found a return instruction in the input"
<< " assembly sequence.\n";
WithColor::note() << "program counter updates are ignored.\n";
+ FirstReturnInst = false;
}
ID->MayLoad = MCDesc.mayLoad();
OpenPOWER on IntegriCloud