@@ -483,12 +483,6 @@ class FilterChooser {
483
483
// Links to the FilterChooser above us in the decoding tree.
484
484
const FilterChooser *Parent;
485
485
486
- // / Some targets (ARM) specify more encoding bits in Inst that Size allows.
487
- // / This field allows us to ignore the extra bits.
488
- unsigned MaxFilterWidth;
489
-
490
- const CodeGenTarget &Target;
491
-
492
486
// / If the selected filter matches multiple encodings, then this is the
493
487
// / starting position and the width of the filtered range.
494
488
unsigned StartBit;
@@ -522,16 +516,12 @@ class FilterChooser {
522
516
public:
523
517
// / Constructs a top-level filter chooser.
524
518
FilterChooser (ArrayRef<InstructionEncoding> Encodings,
525
- ArrayRef<unsigned > EncodingIDs, unsigned MaxFilterWidth,
526
- const CodeGenTarget &Target)
527
- : Encodings(Encodings), EncodingIDs(EncodingIDs), Parent(nullptr ),
528
- MaxFilterWidth (MaxFilterWidth), Target(Target) {
519
+ ArrayRef<unsigned > EncodingIDs)
520
+ : Encodings(Encodings), EncodingIDs(EncodingIDs), Parent(nullptr ) {
529
521
// Sort encoding IDs once.
530
522
stable_sort (this ->EncodingIDs , LessEncodingIDByWidth (Encodings));
531
523
// Filter width is the width of the smallest encoding.
532
524
unsigned FilterWidth = Encodings[this ->EncodingIDs .front ()].getBitWidth ();
533
- // Cap it as necessary.
534
- FilterWidth = std::min (FilterWidth, MaxFilterWidth);
535
525
FilterBits = KnownBits (FilterWidth);
536
526
doFilter ();
537
527
}
@@ -540,15 +530,12 @@ class FilterChooser {
540
530
FilterChooser (ArrayRef<InstructionEncoding> Encodings,
541
531
ArrayRef<unsigned > EncodingIDs, const KnownBits &FilterBits,
542
532
const FilterChooser &Parent)
543
- : Encodings(Encodings), EncodingIDs(EncodingIDs), Parent(&Parent),
544
- MaxFilterWidth(Parent.MaxFilterWidth), Target(Parent.Target) {
533
+ : Encodings(Encodings), EncodingIDs(EncodingIDs), Parent(&Parent) {
545
534
// Inferior filter choosers are created from sorted array of encoding IDs.
546
535
assert (is_sorted (EncodingIDs, LessEncodingIDByWidth (Encodings)));
547
536
assert (!FilterBits.hasConflict () && " Broken filter" );
548
537
// Filter width is the width of the smallest encoding.
549
538
unsigned FilterWidth = Encodings[EncodingIDs.front ()].getBitWidth ();
550
- // Cap it as necessary.
551
- FilterWidth = std::min (FilterWidth, MaxFilterWidth);
552
539
this ->FilterBits = FilterBits.anyext (FilterWidth);
553
540
doFilter ();
554
541
}
@@ -2562,7 +2549,7 @@ namespace {
2562
2549
auto [DecoderNamespace, HwModeID, Size] = Key;
2563
2550
const unsigned BitWidth = IsVarLenInst ? MaxInstLen : 8 * Size;
2564
2551
// Emit the decoder for this (namespace, hwmode, width) combination.
2565
- FilterChooser FC (Encodings, EncodingIDs, BitWidth, Target );
2552
+ FilterChooser FC (Encodings, EncodingIDs);
2566
2553
2567
2554
// The decode table is cleared for each top level decoder function. The
2568
2555
// predicates and decoders themselves, however, are shared across all
0 commit comments