Mar 9 2015
Mar 3 2015
Mar 2 2015
Make requested changes to the test case.
The normal selection mechanism would work fine but current hack in
fast-isel prevents it.
Feb 27 2015
Add test case/
Feb 26 2015
The C code for the test case was modified. I will finish it up tomorrow.
I am working on the make check test. Attached is the C code that was the original test case.
Freshen up patch to tip of tree.
Feb 25 2015
Make Eric Christophers suggest change to remove the test for isVectorAllowed since this is not currently
an issue for Mips32 fast-isel... we don't support any vector types.
Finish up test case.
Merge to tip of tree and run clang format.
Will go through past comments to make sure all nits have been addressed and then will request final push approval.
Feb 23 2015
Feb 19 2015
FIx nits from previous review and rerun clang-format on the result.
What remains is to rewrite the test case.
This just brings the previous patch up to tip of tree. The test case will be replaced with a more complete test case and other comments from the previous review will be addressed.
Am in the processing of verifying this patch with test-suite at O0/O2 for mips 23 r1/r2
Feb 18 2015
Had responded but did not hit the "submit" button.
Eliminate unused parameter in ComputeAddress per Eric Christophers suggestion.
Incorporate Eric Christopher's changes.
Sorry. I will make your changes.
Add one more requested change. Will rerun test-suite at O0/O2 and mips32 r1/r2 on this change.
Missed a pair of superfluous semicolons.
New patch coming... something was wrong with this diff.
Incorporate latest comments.
Getting rid of TargetSupported is possible but we need to add more build bots locally at Imagination to test for non pic and it's currently not in scope for my work now but management decided earlier that you can increase the scope but I just wanted to make it clear that this is an increase of scope of the project to non pic.
Feb 17 2015
Test suite passes on O0/O2 for Mips 32 r1/r2.
Will upload changed source reflecting the latest comments I posted.
Feb 13 2015
This hopefully freshens up the patch to current tip of tree without undoing any of Chandler or Eric Cs changes.
I am rerunning test-suite and then will make Daniels requested changes and any of Erics which still remain
after this rebasing.
I'm going to back to redo this patch sequence.
I see that you and Chandler made some changes in this area.
Unfortunately, my patches that I'm trying to finally commit now are
very old and they have been blocked
in the patch review queue for months now.
Subtarget is initialized first and then TargetSupported.
Not sure I understand some of these comments.
Run clang format on patch.
Patch has been updated to be consistent with current state of LLVM (this patch is old). This version should have no functional changes and has been checked against test-suite at O0/O2 and for mips32 R1/R2.
Feb 12 2015
Feb 10 2015
Fixed issues from last review.
Feb 9 2015
But I would still like to apply my patch first while we investigate that
there is no unwanted ramifications
that would affect other ports.
It seems from this history of this problem that we could just delete the
code for all targets that my patch works around.
Feb 4 2015
In a later patch,
The problem with this approach is that the fast-isel code for a given target can always force things to fall back to selection dag but this patch forces it to do that in all cases.
This original code was added by Bob Wilson.
Correction: the override code placed in the derived fast-isel constructor is:
I don't know what the current logic is behind having fast-isel not treat these C library as ordinary functions so I'm not prepared to force what I want on other ports. It clearly makes no sense in the MIps port because the result is that fast-isel will quit there and for Mips we are trying to minimize this behavior so that the code generation runs faster.
Feb 3 2015
Superseded by http://reviews.llvm.org/D7397
adding llvm commits to this
Jan 27 2015
Submit to commits list for comments too.
Jan 23 2015
Jan 16 2015
Jan 14 2015
A regression was fixed here because it shows up in test-suite only after this patch. It's a generic problem caused by a shortcoming in tabelgen whereby you can't mark a side effect of an instruction as it making a register Dead and instead out tablegen marked the mul instruction wirh defs for LO0 and HI0 which causes a problem for the register allocator when trying to allocate register AC0 since LO0 and HI0 are dependent registers.
Jan 13 2015
I think that the 8/16 return values are dealt with in a later patch.
Dec 24 2014
Superseded by D5566
superseded by D5583
Resubmitted as D5567
Dec 23 2014
Simple executable test case.
Dec 22 2014
Dec 19 2014
Dec 18 2014
Dec 10 2014
Dec 8 2014
load1.ll from initial patch is still part of this.
Fix a bug for this push for when offsets do not fit in the 16 bit signed offset.
I would have put this in a separate patch but the patch needs some of the new features in this
patch; otherwise it would have to be rewritten for this patch.
Nov 26 2014
Nov 14 2014
Update returning of values patch to tip of tree and add test case.
This patch is almost identical to the AArch64 implementation. I am continuing to review this patch myself but hope to push it soon after review.
Nov 13 2014
Oops.. made a mistake on last patch and included some non Mips fast-isel code that had already been committed.
Fix one cosmetic nit
Nov 12 2014
Incorporate comments for LGTM from Daniel Sanders
Nov 10 2014
Fix some small changes requested by Daniel; handling of AExt as SExt, and call to llvm_unreachable if an attempt is made to use custom args, since we don't use them and hence don't expect that situation to occur.
Update patch to work with tip of tree. Majority of changes to MipsISelLowering.<cpp,h> have been replaced by new files MipsCCState.<h,cpp>
Oct 22 2014