summary refs log tree commit diff
path: root/lisc/isel.c
AgeCommit message (Collapse)Author
2015-11-16uniformize looping on instructionsQuentin Carbonneaux
I am actually not sure if "i-b->ins < b->nins" is the best way, maybe the comparison with the last instruction is a little more efficient... At least it is uniform now.
2015-11-13change debug of ABI to AQuentin Carbonneaux
2015-11-01this emit was an emitiQuentin Carbonneaux
2015-10-30add simple dce into iselQuentin Carbonneaux
This looks simple, but it's unclear that the use counts are correct or at least sound after all the instruction massaging that happens for calls/jumps.
2015-10-30finish isel adressing modes and clear the codeQuentin Carbonneaux
2015-10-30simplify constant handling in amatch()Quentin Carbonneaux
2015-10-30store constant addresses in Mem.offsetQuentin Carbonneaux
2015-10-30don't share mems containing temporariesQuentin Carbonneaux
This can cause trouble in register allocation when these temporaries get replaced by registers. On the other hand, offsetted slots and constants can safely be shared.
2015-10-30mention addressing modes in isel main commentQuentin Carbonneaux
2015-10-30start integrating RAMem referencesQuentin Carbonneaux
2015-10-30prepare for using memory refsQuentin Carbonneaux
2015-10-30fix test for load foldingQuentin Carbonneaux
2015-10-30stick scales close to their instructionQuentin Carbonneaux
2015-10-30start work on fusing loads in arithmeticQuentin Carbonneaux
2015-10-30first attempt at address matchingQuentin Carbonneaux
2015-10-30cosmetics on address numbering codeQuentin Carbonneaux
2015-10-30store addressability infos in a structQuentin Carbonneaux
2015-10-30do not give an addressability number to scalesQuentin Carbonneaux
2015-10-30store child matchings in the addressing tableQuentin Carbonneaux
2015-10-30missed a few cases in the tree automatonQuentin Carbonneaux
2015-10-30start adress mode recognitionQuentin Carbonneaux
2015-10-30rename spill field in Tmp to slotQuentin Carbonneaux
2015-10-30emit code for extensions, move slots into RAltQuentin Carbonneaux
2015-10-19uniformize sign extension and mem loadsQuentin Carbonneaux
2015-10-06add pool memory managementQuentin Carbonneaux
2015-10-06use new vector functions instead of reallocsQuentin Carbonneaux
2015-10-06specialize vdup into idupQuentin Carbonneaux
2015-10-06factor ins array edition in icpyQuentin Carbonneaux
2015-10-05factor vector duplication in vdup()Quentin Carbonneaux
2015-10-05factor some utility functions/data in util.cQuentin Carbonneaux
2015-10-05clean the command line interfaceQuentin Carbonneaux
2015-10-01fix a bug for structure arguments in regsQuentin Carbonneaux
2015-09-30remove dead assignmentQuentin Carbonneaux
2015-09-30fix two invalid Tmp.spill valuesQuentin Carbonneaux
2015-09-29wip on new stack slots (emit, spill)Quentin Carbonneaux
2015-09-29more fixes for the new slot representationQuentin Carbonneaux
2015-09-29wip on a simpler slot handlingQuentin Carbonneaux
2015-09-22small simplification in seljmpQuentin Carbonneaux
2015-09-22compile retw and retl as a move in raxQuentin Carbonneaux
2015-09-20save callee-save registersQuentin Carbonneaux
2015-09-17this fixme was really more a todoQuentin Carbonneaux
2015-09-17fix buggy handling of stack arguments in selpar()Quentin Carbonneaux
2015-09-17fix two bugs in selpar()Quentin Carbonneaux
- One missing argument for OAlloc. - One reference shuffling.
2015-09-17fix memcpy bugQuentin Carbonneaux
2015-09-17start work on fuction parametersQuentin Carbonneaux
2015-09-15heavy modification of call handlingQuentin Carbonneaux
The IR generated by calls was very bulky because two instructions were used for marking the live range of a clobber. This patch attempts to store the information of what registers are use/def/clobber in the call instruction itself, this leads to more compact code (even more when we'll have SSE registers). However, I find that the amount of extra code needed is not really easonable. Fortunately it is not too invasive, thus if the complexity creeps in, it should be easy to revert.
2015-09-15emit stack fixup only when necessaryQuentin Carbonneaux
2015-09-15reshuffle instructions around callQuentin Carbonneaux
2015-09-15hack to enable proper regalloc on callsQuentin Carbonneaux
I add the dual to dummy uses: dummy defs. They are compiled to nothing, but help preserving the invariants I had when writing the register allocator. Clearly, there should be a better way.
2015-09-15fix alignment for structs on the stackQuentin Carbonneaux