summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/Sparc/LeonPasses.cpp
diff options
context:
space:
mode:
authorBenjamin Kramer <benny.kra@googlemail.com>2016-06-27 09:38:56 +0000
committerBenjamin Kramer <benny.kra@googlemail.com>2016-06-27 09:38:56 +0000
commit020a740b5b5b33aa3a55ab07bc817c8516d46b14 (patch)
tree4bebae065c4a87ff59bb019d63fdf2bc5b3dfd98 /llvm/lib/Target/Sparc/LeonPasses.cpp
parent4ba65a56228d17a350be56ec96e5d5ac2de0a81a (diff)
downloadbcm5719-llvm-020a740b5b5b33aa3a55ab07bc817c8516d46b14.tar.gz
bcm5719-llvm-020a740b5b5b33aa3a55ab07bc817c8516d46b14.zip
[sparc] Simplify slow and verbose string matching code to startswith_lower.
No functionality change intended, found by cppcheck. PR28274. llvm-svn: 273857
Diffstat (limited to 'llvm/lib/Target/Sparc/LeonPasses.cpp')
-rwxr-xr-xllvm/lib/Target/Sparc/LeonPasses.cpp25
1 files changed, 10 insertions, 15 deletions
diff --git a/llvm/lib/Target/Sparc/LeonPasses.cpp b/llvm/lib/Target/Sparc/LeonPasses.cpp
index 9d39fa2a8c7..2823b6592d4 100755
--- a/llvm/lib/Target/Sparc/LeonPasses.cpp
+++ b/llvm/lib/Target/Sparc/LeonPasses.cpp
@@ -169,10 +169,9 @@ bool FixFSMULD::runOnMachineFunction(MachineFunction& MF)
Reg3Index = MI.getOperand(2).getReg();
}
else if (MI.isInlineAsm()) {
- std::string AsmString (MI.getOperand(InlineAsm::MIOp_AsmString).getSymbolName());
- std::string FMULSOpCoode ("fsmuld");
- std::transform(AsmString.begin(), AsmString.end(), AsmString.begin(), ::tolower);
- if (AsmString.find(FMULSOpCoode) == 0) { // this is an inline FSMULD instruction
+ StringRef AsmString(
+ MI.getOperand(InlineAsm::MIOp_AsmString).getSymbolName());
+ if (AsmString.startswith_lower("fsmuld")) {
//errs() << "Detected InlineAsm FSMULD\n";
unsigned StartOp = InlineAsm::MIOp_FirstOperand;
@@ -281,10 +280,9 @@ bool ReplaceFMULS::runOnMachineFunction(MachineFunction& MF)
Reg3Index = MI.getOperand(2).getReg();
}
else if (MI.isInlineAsm()) {
- std::string AsmString (MI.getOperand(InlineAsm::MIOp_AsmString).getSymbolName());
- std::string FMULSOpCoode ("fmuls");
- std::transform(AsmString.begin(), AsmString.end(), AsmString.begin(), ::tolower);
- if (AsmString.find(FMULSOpCoode) == 0) { // this is an inline FMULS instruction
+ StringRef AsmString(
+ MI.getOperand(InlineAsm::MIOp_AsmString).getSymbolName());
+ if (AsmString.startswith_lower("fmuls")) {
//errs() << "Detected InlineAsm FMULS\n";
unsigned StartOp = InlineAsm::MIOp_FirstOperand;
@@ -377,15 +375,12 @@ bool FixAllFDIVSQRT::runOnMachineFunction(MachineFunction& MF)
unsigned Opcode = MI.getOpcode();
if (MI.isInlineAsm()) {
- std::string AsmString (MI.getOperand(InlineAsm::MIOp_AsmString).getSymbolName());
- std::string FSQRTDOpCode ("fsqrtd");
- std::string FDIVDOpCode ("fdivd");
- std::transform(AsmString.begin(), AsmString.end(), AsmString.begin(), ::tolower);
- if (AsmString.find(FSQRTDOpCode) == 0) { // this is an inline fsqrts instruction
+ StringRef AsmString(
+ MI.getOperand(InlineAsm::MIOp_AsmString).getSymbolName());
+ if (AsmString.startswith_lower("fsqrtd")) {
//errs() << "Detected InlineAsm FSQRTD\n";
Opcode = SP::FSQRTD;
- }
- else if (AsmString.find(FDIVDOpCode) == 0) { // this is an inline fsqrts instruction
+ } else if (AsmString.startswith_lower("fdivd")) {
//errs() << "Detected InlineAsm FDIVD\n";
Opcode = SP::FDIVD;
}
OpenPOWER on IntegriCloud