You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[Mangler] Optimzie the code that inserts bits to APInt.
This commit optimizes the code that inserts bits into a bitstream (APInt).
Instead of adding the bits one by one we calculate the size we need, shift the
APInt and add the numeric value representing the bitstream.
Copy file name to clipboardExpand all lines: lib/ABI/HuffTables.h
+64-64Lines changed: 64 additions & 64 deletions
Original file line number
Diff line number
Diff line change
@@ -521,70 +521,70 @@ if ((tailbits & 1) == 1) {
521
521
assert(false); return0;
522
522
}
523
523
voidvariable_encode(APInt &num, char ch) {
524
-
if (ch == 'w') {/*000000*/ num = num.shl(1); num = num.shl(1); num = num.shl(1); num = num.shl(1); num = num.shl(1); num = num.shl(1); return;}
525
-
if (ch == 'I') {/*0100000*/ num = num.shl(1); num = num.shl(1); num = ++num; num = num.shl(1); num = num.shl(1); num = num.shl(1); num = num.shl(1); num = num.shl(1); return;}
526
-
if (ch == 'U') {/*1100000*/ num = num.shl(1); num = ++num; num = num.shl(1); num = ++num; num = num.shl(1); num = num.shl(1); num = num.shl(1); num = num.shl(1); num = num.shl(1); return;}
527
-
if (ch == '4') {/*010000*/ num = num.shl(1); num = num.shl(1); num = ++num; num = num.shl(1); num = num.shl(1); num = num.shl(1); num = num.shl(1); return;}
528
-
if (ch == '5') {/*110000*/ num = num.shl(1); num = ++num; num = num.shl(1); num = ++num; num = num.shl(1); num = num.shl(1); num = num.shl(1); num = num.shl(1); return;}
529
-
if (ch == 't') {/*01000*/ num = num.shl(1); num = num.shl(1); num = ++num; num = num.shl(1); num = num.shl(1); num = num.shl(1); return;}
530
-
if (ch == 'a') {/*11000*/ num = num.shl(1); num = ++num; num = num.shl(1); num = ++num; num = num.shl(1); num = num.shl(1); num = num.shl(1); return;}
531
-
if (ch == 'i') {/*00100*/ num = num.shl(1); num = num.shl(1); num = num.shl(1); num = ++num; num = num.shl(1); num = num.shl(1); return;}
532
-
if (ch == 'A') {/*010100*/ num = num.shl(1); num = num.shl(1); num = ++num; num = num.shl(1); num = num.shl(1); num = ++num; num = num.shl(1); num = num.shl(1); return;}
533
-
if (ch == 'm') {/*110100*/ num = num.shl(1); num = ++num; num = num.shl(1); num = ++num; num = num.shl(1); num = num.shl(1); num = ++num; num = num.shl(1); num = num.shl(1); return;}
534
-
if (ch == '3') {/*001100*/ num = num.shl(1); num = num.shl(1); num = num.shl(1); num = ++num; num = num.shl(1); num = ++num; num = num.shl(1); num = num.shl(1); return;}
535
-
if (ch == 'd') {/*101100*/ num = num.shl(1); num = ++num; num = num.shl(1); num = num.shl(1); num = ++num; num = num.shl(1); num = ++num; num = num.shl(1); num = num.shl(1); return;}
536
-
if (ch == 'l') {/*011100*/ num = num.shl(1); num = num.shl(1); num = ++num; num = num.shl(1); num = ++num; num = num.shl(1); num = ++num; num = num.shl(1); num = num.shl(1); return;}
537
-
if (ch == 'M') {/*0111100*/ num = num.shl(1); num = num.shl(1); num = ++num; num = num.shl(1); num = ++num; num = num.shl(1); num = ++num; num = num.shl(1); num = ++num; num = num.shl(1); num = num.shl(1); return;}
538
-
if (ch == 'K') {/*1111100*/ num = num.shl(1); num = ++num; num = num.shl(1); num = ++num; num = num.shl(1); num = ++num; num = num.shl(1); num = ++num; num = num.shl(1); num = ++num; num = num.shl(1); num = num.shl(1); return;}
539
-
if (ch == 'Y') {/*00010*/ num = num.shl(1); num = num.shl(1); num = num.shl(1); num = num.shl(1); num = ++num; num = num.shl(1); return;}
540
-
if (ch == 'r') {/*10010*/ num = num.shl(1); num = ++num; num = num.shl(1); num = num.shl(1); num = num.shl(1); num = ++num; num = num.shl(1); return;}
541
-
if (ch == 'E') {/*0001010*/ num = num.shl(1); num = num.shl(1); num = num.shl(1); num = num.shl(1); num = ++num; num = num.shl(1); num = num.shl(1); num = ++num; num = num.shl(1); return;}
542
-
if (ch == 'k') {/*1001010*/ num = num.shl(1); num = ++num; num = num.shl(1); num = num.shl(1); num = num.shl(1); num = ++num; num = num.shl(1); num = num.shl(1); num = ++num; num = num.shl(1); return;}
543
-
if (ch == 'c') {/*101010*/ num = num.shl(1); num = ++num; num = num.shl(1); num = num.shl(1); num = ++num; num = num.shl(1); num = num.shl(1); num = ++num; num = num.shl(1); return;}
544
-
if (ch == 'p') {/*011010*/ num = num.shl(1); num = num.shl(1); num = ++num; num = num.shl(1); num = ++num; num = num.shl(1); num = num.shl(1); num = ++num; num = num.shl(1); return;}
545
-
if (ch == 'B') {/*0111010*/ num = num.shl(1); num = num.shl(1); num = ++num; num = num.shl(1); num = ++num; num = num.shl(1); num = ++num; num = num.shl(1); num = num.shl(1); num = ++num; num = num.shl(1); return;}
546
-
if (ch == 'O') {/*1111010*/ num = num.shl(1); num = ++num; num = num.shl(1); num = ++num; num = num.shl(1); num = ++num; num = num.shl(1); num = ++num; num = num.shl(1); num = num.shl(1); num = ++num; num = num.shl(1); return;}
547
-
if (ch == '1') {/*00110*/ num = num.shl(1); num = num.shl(1); num = num.shl(1); num = ++num; num = num.shl(1); num = ++num; num = num.shl(1); return;}
548
-
if (ch == 's') {/*10110*/ num = num.shl(1); num = ++num; num = num.shl(1); num = num.shl(1); num = ++num; num = num.shl(1); num = ++num; num = num.shl(1); return;}
549
-
if (ch == '9') {/*001110*/ num = num.shl(1); num = num.shl(1); num = num.shl(1); num = ++num; num = num.shl(1); num = ++num; num = num.shl(1); num = ++num; num = num.shl(1); return;}
550
-
if (ch == 'x') {/*101110*/ num = num.shl(1); num = ++num; num = num.shl(1); num = num.shl(1); num = ++num; num = num.shl(1); num = ++num; num = num.shl(1); num = ++num; num = num.shl(1); return;}
551
-
if (ch == 'T') {/*11110*/ num = num.shl(1); num = ++num; num = num.shl(1); num = ++num; num = num.shl(1); num = ++num; num = num.shl(1); num = ++num; num = num.shl(1); return;}
552
-
if (ch == 'S') {/*00001*/ num = num.shl(1); num = num.shl(1); num = num.shl(1); num = num.shl(1); num = num.shl(1); num = ++num; return;}
553
-
if (ch == 'y') {/*0010001*/ num = num.shl(1); num = num.shl(1); num = num.shl(1); num = ++num; num = num.shl(1); num = num.shl(1); num = num.shl(1); num = num.shl(1); num = ++num; return;}
554
-
if (ch == 'X') {/*01010001*/ num = num.shl(1); num = num.shl(1); num = ++num; num = num.shl(1); num = num.shl(1); num = ++num; num = num.shl(1); num = num.shl(1); num = num.shl(1); num = num.shl(1); num = ++num; return;}
555
-
if (ch == 'L') {/*11010001*/ num = num.shl(1); num = ++num; num = num.shl(1); num = ++num; num = num.shl(1); num = num.shl(1); num = ++num; num = num.shl(1); num = num.shl(1); num = num.shl(1); num = num.shl(1); num = ++num; return;}
556
-
if (ch == 'o') {/*110001*/ num = num.shl(1); num = ++num; num = num.shl(1); num = ++num; num = num.shl(1); num = num.shl(1); num = num.shl(1); num = num.shl(1); num = ++num; return;}
557
-
if (ch == 'D') {/*0001001*/ num = num.shl(1); num = num.shl(1); num = num.shl(1); num = num.shl(1); num = ++num; num = num.shl(1); num = num.shl(1); num = num.shl(1); num = ++num; return;}
558
-
if (ch == 'G') {/*1001001*/ num = num.shl(1); num = ++num; num = num.shl(1); num = num.shl(1); num = num.shl(1); num = ++num; num = num.shl(1); num = num.shl(1); num = num.shl(1); num = ++num; return;}
559
-
if (ch == 'F') {/*101001*/ num = num.shl(1); num = ++num; num = num.shl(1); num = num.shl(1); num = ++num; num = num.shl(1); num = num.shl(1); num = num.shl(1); num = ++num; return;}
560
-
if (ch == '6') {/*011001*/ num = num.shl(1); num = num.shl(1); num = ++num; num = num.shl(1); num = ++num; num = num.shl(1); num = num.shl(1); num = num.shl(1); num = ++num; return;}
561
-
if (ch == 'N') {/*0111001*/ num = num.shl(1); num = num.shl(1); num = ++num; num = num.shl(1); num = ++num; num = num.shl(1); num = ++num; num = num.shl(1); num = num.shl(1); num = num.shl(1); num = ++num; return;}
562
-
if (ch == 'P') {/*1111001*/ num = num.shl(1); num = ++num; num = num.shl(1); num = ++num; num = num.shl(1); num = ++num; num = num.shl(1); num = ++num; num = num.shl(1); num = num.shl(1); num = num.shl(1); num = ++num; return;}
563
-
if (ch == 'J') {/*101*/ num = num.shl(1); num = ++num; num = num.shl(1); num = num.shl(1); num = ++num; return;}
564
-
if (ch == '_') {/*0011*/ num = num.shl(1); num = num.shl(1); num = num.shl(1); num = ++num; num = num.shl(1); num = ++num; return;}
565
-
if (ch == 'W') {/*0001011*/ num = num.shl(1); num = num.shl(1); num = num.shl(1); num = num.shl(1); num = ++num; num = num.shl(1); num = num.shl(1); num = ++num; num = num.shl(1); num = ++num; return;}
566
-
if (ch == 'v') {/*01001011*/ num = num.shl(1); num = num.shl(1); num = ++num; num = num.shl(1); num = num.shl(1); num = num.shl(1); num = ++num; num = num.shl(1); num = num.shl(1); num = ++num; num = num.shl(1); num = ++num; return;}
567
-
if (ch == 'Z') {/*11001011*/ num = num.shl(1); num = ++num; num = num.shl(1); num = ++num; num = num.shl(1); num = num.shl(1); num = num.shl(1); num = ++num; num = num.shl(1); num = num.shl(1); num = ++num; num = num.shl(1); num = ++num; return;}
568
-
if (ch == 'h') {/*0101011*/ num = num.shl(1); num = num.shl(1); num = ++num; num = num.shl(1); num = num.shl(1); num = ++num; num = num.shl(1); num = num.shl(1); num = ++num; num = num.shl(1); num = ++num; return;}
569
-
if (ch == 'R') {/*01101011*/ num = num.shl(1); num = num.shl(1); num = ++num; num = num.shl(1); num = ++num; num = num.shl(1); num = num.shl(1); num = ++num; num = num.shl(1); num = num.shl(1); num = ++num; num = num.shl(1); num = ++num; return;}
570
-
if (ch == 'q') {/*11101011*/ num = num.shl(1); num = ++num; num = num.shl(1); num = ++num; num = num.shl(1); num = ++num; num = num.shl(1); num = num.shl(1); num = ++num; num = num.shl(1); num = num.shl(1); num = ++num; num = num.shl(1); num = ++num; return;}
571
-
if (ch == 'e') {/*11011*/ num = num.shl(1); num = ++num; num = num.shl(1); num = ++num; num = num.shl(1); num = num.shl(1); num = ++num; num = num.shl(1); num = ++num; return;}
572
-
if (ch == 'f') {/*000111*/ num = num.shl(1); num = num.shl(1); num = num.shl(1); num = num.shl(1); num = ++num; num = num.shl(1); num = ++num; num = num.shl(1); num = ++num; return;}
573
-
if (ch == '8') {/*0100111*/ num = num.shl(1); num = num.shl(1); num = ++num; num = num.shl(1); num = num.shl(1); num = num.shl(1); num = ++num; num = num.shl(1); num = ++num; num = num.shl(1); num = ++num; return;}
574
-
if (ch == 'b') {/*1100111*/ num = num.shl(1); num = ++num; num = num.shl(1); num = ++num; num = num.shl(1); num = num.shl(1); num = num.shl(1); num = ++num; num = num.shl(1); num = ++num; num = num.shl(1); num = ++num; return;}
575
-
if (ch == '2') {/*010111*/ num = num.shl(1); num = num.shl(1); num = ++num; num = num.shl(1); num = num.shl(1); num = ++num; num = num.shl(1); num = ++num; num = num.shl(1); num = ++num; return;}
576
-
if (ch == 'V') {/*0110111*/ num = num.shl(1); num = num.shl(1); num = ++num; num = num.shl(1); num = ++num; num = num.shl(1); num = num.shl(1); num = ++num; num = num.shl(1); num = ++num; num = num.shl(1); num = ++num; return;}
577
-
if (ch == 'u') {/*1110111*/ num = num.shl(1); num = ++num; num = num.shl(1); num = ++num; num = num.shl(1); num = ++num; num = num.shl(1); num = num.shl(1); num = ++num; num = num.shl(1); num = ++num; num = num.shl(1); num = ++num; return;}
578
-
if (ch == 'n') {/*001111*/ num = num.shl(1); num = num.shl(1); num = num.shl(1); num = ++num; num = num.shl(1); num = ++num; num = num.shl(1); num = ++num; num = num.shl(1); num = ++num; return;}
579
-
if (ch == 'g') {/*0101111*/ num = num.shl(1); num = num.shl(1); num = ++num; num = num.shl(1); num = num.shl(1); num = ++num; num = num.shl(1); num = ++num; num = num.shl(1); num = ++num; num = num.shl(1); num = ++num; return;}
580
-
if (ch == '7') {/*1101111*/ num = num.shl(1); num = ++num; num = num.shl(1); num = ++num; num = num.shl(1); num = num.shl(1); num = ++num; num = num.shl(1); num = ++num; num = num.shl(1); num = ++num; num = num.shl(1); num = ++num; return;}
581
-
if (ch == 'C') {/*0011111*/ num = num.shl(1); num = num.shl(1); num = num.shl(1); num = ++num; num = num.shl(1); num = ++num; num = num.shl(1); num = ++num; num = num.shl(1); num = ++num; num = num.shl(1); num = ++num; return;}
582
-
if (ch == 'z') {/*1011111*/ num = num.shl(1); num = ++num; num = num.shl(1); num = num.shl(1); num = ++num; num = num.shl(1); num = ++num; num = num.shl(1); num = ++num; num = num.shl(1); num = ++num; num = num.shl(1); num = ++num; return;}
583
-
if (ch == 'j') {/*00111111*/ num = num.shl(1); num = num.shl(1); num = num.shl(1); num = ++num; num = num.shl(1); num = ++num; num = num.shl(1); num = ++num; num = num.shl(1); num = ++num; num = num.shl(1); num = ++num; num = num.shl(1); num = ++num; return;}
584
-
if (ch == '$') {/*0010111111*/ num = num.shl(1); num = num.shl(1); num = num.shl(1); num = ++num; num = num.shl(1); num = num.shl(1); num = ++num; num = num.shl(1); num = ++num; num = num.shl(1); num = ++num; num = num.shl(1); num = ++num; num = num.shl(1); num = ++num; num = num.shl(1); num = ++num; return;}
585
-
if (ch == 'Q') {/*1010111111*/ num = num.shl(1); num = ++num; num = num.shl(1); num = num.shl(1); num = ++num; num = num.shl(1); num = num.shl(1); num = ++num; num = num.shl(1); num = ++num; num = num.shl(1); num = ++num; num = num.shl(1); num = ++num; num = num.shl(1); num = ++num; num = num.shl(1); num = ++num; return;}
586
-
if (ch == 'H') {/*110111111*/ num = num.shl(1); num = ++num; num = num.shl(1); num = ++num; num = num.shl(1); num = num.shl(1); num = ++num; num = num.shl(1); num = ++num; num = num.shl(1); num = ++num; num = num.shl(1); num = ++num; num = num.shl(1); num = ++num; num = num.shl(1); num = ++num; return;}
587
-
if (ch == '0') {/*1111111*/ num = num.shl(1); num = ++num; num = num.shl(1); num = ++num; num = num.shl(1); num = ++num; num = num.shl(1); num = ++num; num = num.shl(1); num = ++num; num = num.shl(1); num = ++num; num = num.shl(1); num = ++num; return;}
524
+
if (ch == 'w') {/*000000*/ num = num.shl(6); num = num + 0; return;}
525
+
if (ch == 'I') {/*0100000*/ num = num.shl(7); num = num + 32; return;}
526
+
if (ch == 'U') {/*1100000*/ num = num.shl(7); num = num + 96; return;}
527
+
if (ch == '4') {/*010000*/ num = num.shl(6); num = num + 16; return;}
528
+
if (ch == '5') {/*110000*/ num = num.shl(6); num = num + 48; return;}
529
+
if (ch == 't') {/*01000*/ num = num.shl(5); num = num + 8; return;}
530
+
if (ch == 'a') {/*11000*/ num = num.shl(5); num = num + 24; return;}
531
+
if (ch == 'i') {/*00100*/ num = num.shl(5); num = num + 4; return;}
532
+
if (ch == 'A') {/*010100*/ num = num.shl(6); num = num + 20; return;}
533
+
if (ch == 'm') {/*110100*/ num = num.shl(6); num = num + 52; return;}
534
+
if (ch == '3') {/*001100*/ num = num.shl(6); num = num + 12; return;}
535
+
if (ch == 'd') {/*101100*/ num = num.shl(6); num = num + 44; return;}
536
+
if (ch == 'l') {/*011100*/ num = num.shl(6); num = num + 28; return;}
537
+
if (ch == 'M') {/*0111100*/ num = num.shl(7); num = num + 60; return;}
538
+
if (ch == 'K') {/*1111100*/ num = num.shl(7); num = num + 124; return;}
539
+
if (ch == 'Y') {/*00010*/ num = num.shl(5); num = num + 2; return;}
540
+
if (ch == 'r') {/*10010*/ num = num.shl(5); num = num + 18; return;}
541
+
if (ch == 'E') {/*0001010*/ num = num.shl(7); num = num + 10; return;}
542
+
if (ch == 'k') {/*1001010*/ num = num.shl(7); num = num + 74; return;}
543
+
if (ch == 'c') {/*101010*/ num = num.shl(6); num = num + 42; return;}
544
+
if (ch == 'p') {/*011010*/ num = num.shl(6); num = num + 26; return;}
545
+
if (ch == 'B') {/*0111010*/ num = num.shl(7); num = num + 58; return;}
546
+
if (ch == 'O') {/*1111010*/ num = num.shl(7); num = num + 122; return;}
547
+
if (ch == '1') {/*00110*/ num = num.shl(5); num = num + 6; return;}
548
+
if (ch == 's') {/*10110*/ num = num.shl(5); num = num + 22; return;}
549
+
if (ch == '9') {/*001110*/ num = num.shl(6); num = num + 14; return;}
550
+
if (ch == 'x') {/*101110*/ num = num.shl(6); num = num + 46; return;}
551
+
if (ch == 'T') {/*11110*/ num = num.shl(5); num = num + 30; return;}
552
+
if (ch == 'S') {/*00001*/ num = num.shl(5); num = num + 1; return;}
553
+
if (ch == 'y') {/*0010001*/ num = num.shl(7); num = num + 17; return;}
554
+
if (ch == 'X') {/*01010001*/ num = num.shl(8); num = num + 81; return;}
555
+
if (ch == 'L') {/*11010001*/ num = num.shl(8); num = num + 209; return;}
556
+
if (ch == 'o') {/*110001*/ num = num.shl(6); num = num + 49; return;}
557
+
if (ch == 'D') {/*0001001*/ num = num.shl(7); num = num + 9; return;}
558
+
if (ch == 'G') {/*1001001*/ num = num.shl(7); num = num + 73; return;}
559
+
if (ch == 'F') {/*101001*/ num = num.shl(6); num = num + 41; return;}
560
+
if (ch == '6') {/*011001*/ num = num.shl(6); num = num + 25; return;}
561
+
if (ch == 'N') {/*0111001*/ num = num.shl(7); num = num + 57; return;}
562
+
if (ch == 'P') {/*1111001*/ num = num.shl(7); num = num + 121; return;}
563
+
if (ch == 'J') {/*101*/ num = num.shl(3); num = num + 5; return;}
564
+
if (ch == '_') {/*0011*/ num = num.shl(4); num = num + 3; return;}
565
+
if (ch == 'W') {/*0001011*/ num = num.shl(7); num = num + 11; return;}
566
+
if (ch == 'v') {/*01001011*/ num = num.shl(8); num = num + 75; return;}
567
+
if (ch == 'Z') {/*11001011*/ num = num.shl(8); num = num + 203; return;}
568
+
if (ch == 'h') {/*0101011*/ num = num.shl(7); num = num + 43; return;}
569
+
if (ch == 'R') {/*01101011*/ num = num.shl(8); num = num + 107; return;}
570
+
if (ch == 'q') {/*11101011*/ num = num.shl(8); num = num + 235; return;}
571
+
if (ch == 'e') {/*11011*/ num = num.shl(5); num = num + 27; return;}
572
+
if (ch == 'f') {/*000111*/ num = num.shl(6); num = num + 7; return;}
573
+
if (ch == '8') {/*0100111*/ num = num.shl(7); num = num + 39; return;}
574
+
if (ch == 'b') {/*1100111*/ num = num.shl(7); num = num + 103; return;}
575
+
if (ch == '2') {/*010111*/ num = num.shl(6); num = num + 23; return;}
576
+
if (ch == 'V') {/*0110111*/ num = num.shl(7); num = num + 55; return;}
577
+
if (ch == 'u') {/*1110111*/ num = num.shl(7); num = num + 119; return;}
578
+
if (ch == 'n') {/*001111*/ num = num.shl(6); num = num + 15; return;}
579
+
if (ch == 'g') {/*0101111*/ num = num.shl(7); num = num + 47; return;}
580
+
if (ch == '7') {/*1101111*/ num = num.shl(7); num = num + 111; return;}
581
+
if (ch == 'C') {/*0011111*/ num = num.shl(7); num = num + 31; return;}
582
+
if (ch == 'z') {/*1011111*/ num = num.shl(7); num = num + 95; return;}
583
+
if (ch == 'j') {/*00111111*/ num = num.shl(8); num = num + 63; return;}
584
+
if (ch == '$') {/*0010111111*/ num = num.shl(10); num = num + 191; return;}
585
+
if (ch == 'Q') {/*1010111111*/ num = num.shl(10); num = num + 703; return;}
586
+
if (ch == 'H') {/*110111111*/ num = num.shl(9); num = num + 447; return;}
587
+
if (ch == '0') {/*1111111*/ num = num.shl(7); num = num + 127; return;}
0 commit comments