- Jan 23, 2014
-
-
Daniel Sanders authored
No functional change since the InstrItinData's have been duplicated. llvm-svn: 199876
-
- Jan 21, 2014
-
-
Daniel Sanders authored
No functional change since the InstrItinData's have been duplicated. llvm-svn: 199749
-
- Jan 16, 2014
-
-
Reed Kotler authored
than it needs to be by 1 bit but I need to finish some other things so that all the boundary cases will work in that situation. constpool.c in test-suite will fail to assemble under our new internal test-suite sync without this change. llvm-svn: 199343
-
- Dec 15, 2013
-
-
Reed Kotler authored
part of a multi-line pseudo which worked around a linker bug for mips16. llvm-svn: 197356
-
Reed Kotler authored
Some tiny cosmetic code changes to follow. Because of the wide ranging nature of the patch a full 24 test cycle was needed to check against regression. This was the smallest patch I could make to progress from the earlier ones in the series. llvm-svn: 197350
-
- Dec 08, 2013
-
-
Reed Kotler authored
here is to make save/restore into variable number of argument instructions. llvm-svn: 196726
-
- Dec 05, 2013
-
-
Alp Toker authored
This patch tries to avoid unrelated changes other than fixing a few hyphen-related ambiguities and contractions in nearby lines. llvm-svn: 196471
-
- Nov 29, 2013
-
-
Reed Kotler authored
in constant islands for Mips16. We introdcuce JalB16 as a synomnym for Jal16. It makes it easier to read and is also necessary because Jal16 is a call instruction but JalB16 is being used as a branch. Various parts of LLVM will not work properly even in this late stage of the backend if we use what was declared as a call instruction to function as a branch. For one, basic block labels may not get emitted in some situations. llvm-svn: 195968
-
- Nov 21, 2013
-
-
Reed Kotler authored
llvm-svn: 195312
-
- Nov 15, 2013
-
-
Reed Kotler authored
short form. Constant islands will expand them if they are out of range. Since there is not direct object emitter at this time, it does not have any material affect because the assembler sorts this out. But we need to know for the actual constant island work. We track the difference by putting # 16 inst in the comments. llvm-svn: 194766
-
- Nov 12, 2013
-
-
Reed Kotler authored
This has no material effect at this time since we don't have a direct object emitter for mips16 and the assembler can't tell them apart. I place a comment "16 bit inst" for those so that I can tell them apart in the output. The constant island pass has only been minimally changed to allow this. More complete branch work is forthcoming but this is the first step. llvm-svn: 194442
-
- Nov 05, 2013
-
-
Reed Kotler authored
Submit the basic port of the rest of ARM constant islands code to Mips. Two test cases are added which reflect the next level of functionality: constants getting moved to water areas that are out of range from the initial placement at the end of the function and basic blocks being split to create water when none exists that can be used. There is a bunch of this code that is not complete and has been marked with IN_PROGRESS. I will finish cleaning this all up during the next week or two and submit the rest of the test cases. I have elminated some code for dealing with inline assembly because to me it unecessarily complicates things and some of the newer features of llvm like function attributies and builtin assembler give me better tools to solve the alignment issues created there. Also, for Mips16 I even have the option of not doing constant islands in the present of inline assembler if I chose. When everything has been completed I will summarize the port and notify people that are knowledgable regarding the ARM Constant Islands code so they can review it in it's entirety if they wish. llvm-svn: 194053
-
NAKAMURA Takumi authored
Revert r194019 to r194021, "Submit the basic port of the rest of ARM constant islands code to Mips." It broke -Asserts build. llvm-svn: 194026
-
- Nov 04, 2013
-
-
Reed Kotler authored
Two test cases are added which reflect the next level of functionality: constants getting moved to water areas that are out of range from the initial placement at the end of the function and basic blocks being split to create water when none exists that can be used. There is a bunch of this code that is not complete and has been marked with IN_PROGRESS. I will finish cleaning this all up during the next week or two and submit the rest of the test cases. I have elminated some code for dealing with inline assembly because to me it unecessarily complicates things and some of the newer features of llvm like function attributies and builtin assembler give me better tools to solve the alignment issues created there. Also, for Mips16 I even have the option of not doing constant islands in the present of inline assembler if I chose. llvm-svn: 194019
-
- Oct 28, 2013
-
-
NAKAMURA Takumi authored
llvm-svn: 193512
-
NAKAMURA Takumi authored
llvm-svn: 193511
-
- Oct 27, 2013
-
-
Reed Kotler authored
Before I just ported the shell of the pass. I've tried to keep everything nearly identical to the ARM version. I think it will be very easy to eventually merge these two and create a new more general pass that other targets can use. I have some improvements I would like to make to allow pools to be shared across functions and some other things. When I'm all done we can think about making a more general pass. More to be ported but the basic mechanism works now almost as good as gcc mips16. llvm-svn: 193509
-
- Oct 12, 2013
-
-
Reed Kotler authored
they can be better handled and optimized in the Mips16 constant island code. llvm-svn: 192520
-
- Oct 07, 2013
-
-
Reed Kotler authored
llvm-svn: 192130
-
- Oct 05, 2013
-
-
Reed Kotler authored
llvm-svn: 191986
-
- Sep 19, 2013
-
-
Reed Kotler authored
1) make sure that the first two instructions of the sequence cannot separate from each other. The linker requires that they be sequential. If they get separated, it can still work but it will not work in all cases because the first of the instructions mostly involves the hi part of the pc relative offset and that part changes slowly. You would have to be at the right boundary for this to matter. 2) make sure that this sequence begins on a longword boundary. There appears to be a bug in binutils which makes some of these calculations get messed up if the instruction sequence does not begin on a longword boundary. This is being investigated with the appropriate binutils folks. llvm-svn: 190966
-
- Sep 07, 2013
-
-
Akira Hatanaka authored
into a 5-bit or 6-bit field. llvm-svn: 190226
-
- Aug 14, 2013
-
-
Akira Hatanaka authored
llvm-svn: 188341
-
- Aug 11, 2013
-
-
Reed Kotler authored
instruction move. Just affects static relocation. -static works fine now with mips16 for the most part. llvm-svn: 188143
-
- Aug 07, 2013
-
-
Reed Kotler authored
llvm-svn: 187863
-
Akira Hatanaka authored
llvm-svn: 187832
-
- Aug 05, 2013
-
-
Reed Kotler authored
helper functions. This can be optimized out later when the remaining parts of the helper function work is moved into the Mips16HardFloat pass. For now it forces us to use the 32 bit save/restore instructions instead of the 16 bit ones. llvm-svn: 187712
-
- Aug 04, 2013
-
-
Reed Kotler authored
llvm-svn: 187701
-
- Aug 01, 2013
-
-
Reed Kotler authored
llvm-svn: 187553
-
- Mar 30, 2013
-
-
Akira Hatanaka authored
The new instructions have explicit register output operands and use table-gen patterns instead of C++ code to do instruction selection. Mips16's instructions are unaffected by this change. llvm-svn: 178403
-
- Mar 14, 2013
-
-
Akira Hatanaka authored
llvm-svn: 177092
-
- Feb 25, 2013
-
-
Reed Kotler authored
llvm-svn: 176007
-
Reed Kotler authored
llvm-svn: 176002
-
- Feb 24, 2013
-
-
Reed Kotler authored
as early as possible; which means during instruction selection. llvm-svn: 175984
-
Reed Kotler authored
proper. Fixed this already a few days ago for slti. llvm-svn: 175975
-
- Feb 23, 2013
-
-
Reed Kotler authored
macros.The rest is some small misc. stuff. llvm-svn: 175950
-
- Feb 22, 2013
-
-
Reed Kotler authored
llvm-svn: 175862
-
- Feb 21, 2013
-
-
Reed Kotler authored
there were inline br .+4 instructions. Soon everything can enjoy the full instruction scheduling experience. llvm-svn: 175718
-
- Feb 20, 2013
-
-
Reed Kotler authored
SltCCRxRy16, SltiCCRxImmX16, SltiuCCRxImmX16, SltuCCRxRy16 $T8 shows up as register $24 when emitted from C++ code so we had to change some tests that were already there for this functionality. llvm-svn: 175593
-
- Feb 19, 2013
-
-
Reed Kotler authored
BtnezT8SltiX16, BtnezT8SltiuX16 . llvm-svn: 175486
-