@@ -934,13 +934,8 @@ static bool expandStrcmp(CallInst *CI, DominatorTree &DT, bool &MadeCFGChange) {
934
934
size_t ConstantStrSize = ConstantStr.size ();
935
935
936
936
// Trivial cases are optimized during inst combine
937
- if (ConstantStrSize == 0 ) {
937
+ if (ConstantStrSize == 0 || ConstantStrSize > 2 )
938
938
return false ;
939
- }
940
-
941
- if (ConstantStrSize > 2 ) {
942
- return false ;
943
- }
944
939
945
940
// Check if strcmp result is only used in a comparison with zero
946
941
if (!isOnlyUsedInZeroComparison (CI))
@@ -960,7 +955,7 @@ static bool expandStrcmp(CallInst *CI, DominatorTree &DT, bool &MadeCFGChange) {
960
955
// For strcmp(P, "xy") do the following transformation:
961
956
//
962
957
// (before)
963
- // dst = strcmp(P, "x ")
958
+ // dst = strcmp(P, "xy ")
964
959
//
965
960
// (after)
966
961
// v0 = P[0] - 'x'
@@ -1000,19 +995,19 @@ static bool expandStrcmp(CallInst *CI, DominatorTree &DT, bool &MadeCFGChange) {
1000
995
static_cast <unsigned char >(ConstantStr[CharacterIndexToCheck]));
1001
996
Value *CharacterSub =
1002
997
B.CreateNSWSub (StrCharacterValue, ConstantStrCharacterValue);
1003
- Value *IsCharacterSubZero =
998
+ Value *CharacterSubIsZero =
1004
999
B.CreateICmpEQ (CharacterSub, ConstantInt::get (RetType, 0 ));
1005
- BasicBlock *IsCharacterSubZeroBB =
1000
+ BasicBlock *CharacterSubIsZeroBB =
1006
1001
BasicBlock::Create (B.getContext (), " strcmp_expand_sub_is_zero" ,
1007
1002
InitialBB->getParent (), JoinBlock);
1008
- B.CreateCondBr (IsCharacterSubZero, IsCharacterSubZeroBB , JoinBlock);
1003
+ B.CreateCondBr (CharacterSubIsZero, CharacterSubIsZeroBB , JoinBlock);
1009
1004
1010
1005
ResultPHI->addIncoming (CharacterSub, B.GetInsertBlock ());
1011
1006
DTUpdates.emplace_back (DominatorTree::Insert, B.GetInsertBlock (),
1012
- IsCharacterSubZeroBB );
1007
+ CharacterSubIsZeroBB );
1013
1008
1014
- B.SetInsertPoint (IsCharacterSubZeroBB );
1015
- DTUpdates.emplace_back (DominatorTree::Insert, IsCharacterSubZeroBB ,
1009
+ B.SetInsertPoint (CharacterSubIsZeroBB );
1010
+ DTUpdates.emplace_back (DominatorTree::Insert, CharacterSubIsZeroBB ,
1016
1011
JoinBlock);
1017
1012
}
1018
1013
0 commit comments