Skip to content

Commit 4537985

Browse files
committed
[X86][CodeGen] Remove CodeSize settings for instructions, NFCI
CodeSize was designed to used as the 3rd isel sorting tie-breaker. From observation, it has no impact on X86 ISEL.
1 parent e247e6f commit 4537985

File tree

2 files changed

+12
-26
lines changed

2 files changed

+12
-26
lines changed

llvm/lib/Target/X86/X86InstrArithmetic.td

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -520,20 +520,20 @@ def X86sub_flag_nocf : PatFrag<(ops node:$lhs, node:$rhs),
520520
let Defs = [EFLAGS] in {
521521
let Constraints = "$src1 = $dst", SchedRW = [WriteALU] in {
522522
// Short forms only valid in 32-bit mode. Selected during MCInst lowering.
523-
let CodeSize = 1, hasSideEffects = 0 in {
523+
let hasSideEffects = 0 in {
524524
def INC16r_alt : INCDECR_ALT<0x40, "inc", Xi16>;
525525
def INC32r_alt : INCDECR_ALT<0x40, "inc", Xi32>;
526-
} // CodeSize = 1, hasSideEffects = 0
526+
} // hasSideEffects = 0
527527

528-
let isConvertibleToThreeAddress = 1, CodeSize = 2 in { // Can xform into LEA.
528+
let isConvertibleToThreeAddress = 1 in { // Can xform into LEA.
529529
def INC8r : INCDECR<MRM0r, "inc", Xi8, X86add_flag_nocf>;
530530
def INC16r : INCDECR<MRM0r, "inc", Xi16, X86add_flag_nocf>;
531531
def INC32r : INCDECR<MRM0r, "inc", Xi32, X86add_flag_nocf>;
532532
def INC64r : INCDECR<MRM0r, "inc", Xi64, X86add_flag_nocf>;
533-
} // isConvertibleToThreeAddress = 1, CodeSize = 2
533+
} // isConvertibleToThreeAddress = 1
534534
} // Constraints = "$src1 = $dst", SchedRW
535535

536-
let CodeSize = 2, SchedRW = [WriteALURMW] in {
536+
let SchedRW = [WriteALURMW] in {
537537
let Predicates = [UseIncDec] in {
538538
def INC8m : INCDECM<MRM0m, "inc", Xi8, 1>;
539539
def INC16m : INCDECM<MRM0m, "inc", Xi16, 1>;
@@ -542,24 +542,24 @@ let Predicates = [UseIncDec] in {
542542
let Predicates = [UseIncDec, In64BitMode] in {
543543
def INC64m : INCDECM<MRM0m, "inc", Xi64, 1>;
544544
} // Predicates
545-
} // CodeSize = 2, SchedRW
545+
} // SchedRW
546546

547547
let Constraints = "$src1 = $dst", SchedRW = [WriteALU] in {
548548
// Short forms only valid in 32-bit mode. Selected during MCInst lowering.
549-
let CodeSize = 1, hasSideEffects = 0 in {
549+
let hasSideEffects = 0 in {
550550
def DEC16r_alt : INCDECR_ALT<0x48, "dec", Xi16>;
551551
def DEC32r_alt : INCDECR_ALT<0x48, "dec", Xi32>;
552-
} // CodeSize = 1, hasSideEffects = 0
552+
} // hasSideEffects = 0
553553

554-
let isConvertibleToThreeAddress = 1, CodeSize = 2 in { // Can xform into LEA.
554+
let isConvertibleToThreeAddress = 1 in { // Can xform into LEA.
555555
def DEC8r : INCDECR<MRM1r, "dec", Xi8, X86sub_flag_nocf>;
556556
def DEC16r : INCDECR<MRM1r, "dec", Xi16, X86sub_flag_nocf>;
557557
def DEC32r : INCDECR<MRM1r, "dec", Xi32, X86sub_flag_nocf>;
558558
def DEC64r : INCDECR<MRM1r, "dec", Xi64, X86sub_flag_nocf>;
559-
} // isConvertibleToThreeAddress = 1, CodeSize = 2
559+
} // isConvertibleToThreeAddress = 1
560560
} // Constraints = "$src1 = $dst", SchedRW
561561

562-
let CodeSize = 2, SchedRW = [WriteALURMW] in {
562+
let SchedRW = [WriteALURMW] in {
563563
let Predicates = [UseIncDec] in {
564564
def DEC8m : INCDECM<MRM1m, "dec", Xi8, -1>;
565565
def DEC16m : INCDECM<MRM1m, "dec", Xi16, -1>;
@@ -568,7 +568,7 @@ let Predicates = [UseIncDec] in {
568568
let Predicates = [UseIncDec, In64BitMode] in {
569569
def DEC64m : INCDECM<MRM1m, "dec", Xi64, -1>;
570570
} // Predicates
571-
} // CodeSize = 2, SchedRW
571+
} // SchedRW
572572
} // Defs = [EFLAGS]
573573

574574
// Extra precision multiplication
@@ -764,7 +764,6 @@ def IDIV64m: MulOpM<0xF7, MRM7m, "idiv", Xi64, WriteIDiv64, []>,
764764
//
765765

766766
// unary instructions
767-
let CodeSize = 2 in {
768767
let Defs = [EFLAGS] in {
769768
let Constraints = "$src1 = $dst", SchedRW = [WriteALU] in {
770769
def NEG8r : NegOpR<0xF6, "neg", Xi8>;
@@ -798,7 +797,6 @@ def NOT16m : NotOpM<0xF7, "not", Xi16>;
798797
def NOT32m : NotOpM<0xF7, "not", Xi32>;
799798
def NOT64m : NotOpM<0xF7, "not", Xi64>, Requires<[In64BitMode]>;
800799
} // SchedRW
801-
} // CodeSize
802800

803801
/// ArithBinOp_RF - This is an arithmetic binary operator where the pattern is
804802
/// defined with "(set GPR:$dst, EFLAGS, (...".

llvm/lib/Target/X86/X86InstrFormats.td

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -409,64 +409,54 @@ class I<bits<8> o, Format f, dag outs, dag ins, string asm,
409409
list<dag> pattern, Domain d = GenericDomain>
410410
: X86Inst<o, f, NoImm, outs, ins, asm, d> {
411411
let Pattern = pattern;
412-
let CodeSize = 3;
413412
}
414413
class Ii8<bits<8> o, Format f, dag outs, dag ins, string asm,
415414
list<dag> pattern, Domain d = GenericDomain>
416415
: X86Inst<o, f, Imm8, outs, ins, asm, d> {
417416
let Pattern = pattern;
418-
let CodeSize = 3;
419417
}
420418
class Ii8Reg<bits<8> o, Format f, dag outs, dag ins, string asm,
421419
list<dag> pattern, Domain d = GenericDomain>
422420
: X86Inst<o, f, Imm8Reg, outs, ins, asm, d> {
423421
let Pattern = pattern;
424-
let CodeSize = 3;
425422
}
426423
class Ii8PCRel<bits<8> o, Format f, dag outs, dag ins, string asm,
427424
list<dag> pattern>
428425
: X86Inst<o, f, Imm8PCRel, outs, ins, asm> {
429426
let Pattern = pattern;
430-
let CodeSize = 3;
431427
}
432428
class Ii16<bits<8> o, Format f, dag outs, dag ins, string asm,
433429
list<dag> pattern>
434430
: X86Inst<o, f, Imm16, outs, ins, asm> {
435431
let Pattern = pattern;
436-
let CodeSize = 3;
437432
}
438433
class Ii32<bits<8> o, Format f, dag outs, dag ins, string asm,
439434
list<dag> pattern>
440435
: X86Inst<o, f, Imm32, outs, ins, asm> {
441436
let Pattern = pattern;
442-
let CodeSize = 3;
443437
}
444438
class Ii32S<bits<8> o, Format f, dag outs, dag ins, string asm,
445439
list<dag> pattern>
446440
: X86Inst<o, f, Imm32S, outs, ins, asm> {
447441
let Pattern = pattern;
448-
let CodeSize = 3;
449442
}
450443

451444
class Ii64<bits<8> o, Format f, dag outs, dag ins, string asm,
452445
list<dag> pattern>
453446
: X86Inst<o, f, Imm64, outs, ins, asm> {
454447
let Pattern = pattern;
455-
let CodeSize = 3;
456448
}
457449

458450
class Ii16PCRel<bits<8> o, Format f, dag outs, dag ins, string asm,
459451
list<dag> pattern>
460452
: X86Inst<o, f, Imm16PCRel, outs, ins, asm> {
461453
let Pattern = pattern;
462-
let CodeSize = 3;
463454
}
464455

465456
class Ii32PCRel<bits<8> o, Format f, dag outs, dag ins, string asm,
466457
list<dag> pattern>
467458
: X86Inst<o, f, Imm32PCRel, outs, ins, asm> {
468459
let Pattern = pattern;
469-
let CodeSize = 3;
470460
}
471461

472462
// FPStack Instruction Templates:
@@ -495,14 +485,12 @@ class Iseg16 <bits<8> o, Format f, dag outs, dag ins, string asm,
495485
list<dag> pattern>
496486
: X86Inst<o, f, Imm16, outs, ins, asm> {
497487
let Pattern = pattern;
498-
let CodeSize = 3;
499488
}
500489

501490
class Iseg32 <bits<8> o, Format f, dag outs, dag ins, string asm,
502491
list<dag> pattern>
503492
: X86Inst<o, f, Imm32, outs, ins, asm> {
504493
let Pattern = pattern;
505-
let CodeSize = 3;
506494
}
507495

508496
// SI - SSE 1 & 2 scalar instructions

0 commit comments

Comments
 (0)