User Details
- User Since
- Aug 12 2020, 4:46 AM (22 w, 3 d)
Thu, Jan 7
Wed, Jan 6
@aditya_nandakumar Can you please take a look at this patch? We are unsure on whether the observer is used correctly here.
Tue, Jan 5
Bump
Machine operand is now updated in constrainOperandRegClass()
Mon, Jan 4
Wed, Dec 30
Fixed bad comment
Tue, Dec 29
I believe it is calling the one in LowLevelTypeImpl.h.
Fix lint warnings
Add testcase
Mon, Dec 28
Bump
Removed use of temporary file.
Wed, Dec 23
Moved testcase to correct location
Split RUN into multiple lines
Added check of frame object list
Fixed failing testcase
Tue, Dec 22
Dec 14 2020
Hm, I had another look at this and it seems that it's enough to provide either a register class or a value type. In both cases you enter the same if condition (see line 4266 in GlobalISelEmitter.cpp in this review), which checks that the child record is either a RegisterClass, RegisterOperand, or ValueType. If the check passes, it will output a GIR_COPY, which just copies the operand from one instruction (the one matched) to another (the instruction to emit) and hence does not look at the register class of the destination (that seems to be taken care of at a later stage, which does not look at the annotation of the operand in the pattern).
Dec 2 2020
- Directly apply mapping of there is only one. This leads to improved performance as well as improved code quality for targets that only output a single mapping that is context-dependent (now only failing 32 testcases when forcing greedy to use global instead).
- Bug fix
Nov 29 2020
More bugfixes
Nov 26 2020
Reduce number of necessary checks.
Bug fixes
Nov 24 2020
Use MappingCost instead of int for representing costs.
Bug fix
- Improved selection: Now choosing the mapping with the highest utility instead of lowest cost, which should direct optimization towards blocks with high frequency.
- Reduce vector copying.
Rearranged function declarations in RegBankSelect.cpp (NFC)
Rewrote code to make use of applyMapping(). Now fast, greedy, and global version
all use the same code for enforcing the selection of instruction mappings.
Nov 23 2020
Missed a part of the CHECK
Fixed testcase according to bjope's feedback
Nov 17 2020
Replace dyn_cast with isa
Nov 16 2020
Nov 13 2020
Nov 12 2020
Nov 11 2020
Added Paul-C-Anagnostopoulos since he's now one of the TableGen code owners.
Added Paul-C-Anagnostopoulos since he's now one of the TableGen code owners.
Nov 9 2020
So what happens now? Should it be merge as is, or does it need to be tested more stringently before that happens? Or are there any further changes that need to be made?
Bump
Nov 5 2020
Nov 2 2020
replace 'optimal' with 'global'
- fix bug when register is a physical register
- fix lint warnings
Oct 28 2020
Fixed arsenm's comment on MachineIRBuilder
Fixes based on arsenm's comments
Fix lint warnings
Thank you very much for your feedback, arsenm! Really appreciate it!
Oct 12 2020
Any comments? Should this patch be accepted or rejected?
Seems no one else is requesting this.
Oct 5 2020
Bump
Oct 2 2020
Sep 30 2020
Bump
Rebased to latest (forgot to pull)
Rebase to latest master
Removed else after return
Sep 29 2020
Oops, had missed that. Thanks!
- add missing check in testcase
- fix lint warnings
Added testcase
Sep 28 2020
Aug 31 2020
Reordered functions as per bjope's feedback
Aug 26 2020
Updated patch according to bjope's suggestion.
Added check that the register class to be annotated is allocatable and is not a union of other register classes.
Aug 25 2020
I should mention that this is required for split arguments to work for our target, and it is possible that we're doing something wrong on our end. I don't see it, however, so I decided to submit this for review in hopes that someone either can tell me whether our backend is incorrectly implemented or this is indeed a bug in global-isel.
Aug 24 2020
Forgot to update testcase.
[TableGen][GlobalISel] Fix handling of zero_reg