|  | Commit message (Collapse) | Author | Age | Files | Lines | 
|---|
| ... |  | 
| | 
| 
| 
| | llvm-svn: 107393 | 
| | 
| 
| 
| 
| 
| | doing the work manually.
llvm-svn: 107384 | 
| | 
| 
| 
| 
| 
| 
| | from a Value to a Type, because it doesn't actually care about
the Value.
llvm-svn: 107383 | 
| | 
| 
| 
| | llvm-svn: 107377 | 
| | 
| 
| 
| | llvm-svn: 106746 | 
| | 
| 
| 
| 
| 
| | DAGCombiner pass,"... it was causing both 'file' (with clang) and 176.gcc (with llvm-gcc) to be miscompiled.
llvm-svn: 106634 | 
| | 
| 
| 
| | llvm-svn: 106286 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | switch from this:
  if (TimePassesIsEnabled) {
    NamedRegionTimer T(Name, GroupName);
    do_something();
  } else {
    do_something(); // duplicate the code, this time without a timer!
  }
to this:
  {
    NamedRegionTimer T(Name, GroupName, TimePassesIsEnabled);
    do_something();
  }
llvm-svn: 106285 | 
| | 
| 
| 
| 
| 
| | which is faster, simpler, and less surprising.
llvm-svn: 106263 | 
| | 
| 
| 
| 
| 
| 
| | shouldn't have a TargetLoweringInfo member. And FunctionLoweringInfo::set
doesn't needs its EnableFastISel argument.
llvm-svn: 105101 | 
| | 
| 
| 
| | llvm-svn: 104749 | 
| | 
| 
| 
| 
| 
| | usual suspects that could "return twice".
llvm-svn: 104737 | 
| | 
| 
| 
| | llvm-svn: 104732 | 
| | 
| 
| 
| 
| 
| | more than just the stack slot coloring algorithm.
llvm-svn: 104722 | 
| | 
| 
| 
| | llvm-svn: 104664 | 
| | 
| 
| 
| 
| 
| | machine code generation. That's a good idea, so I made it so.
llvm-svn: 104655 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| | pipeline stall. It's useful for targets like ARM cortex-a8. NEON has a lot
of long latency instructions so a strict register pressure reduction
scheduler does not work well.
Early experiments show this speeds up some NEON loops by over 30%.
llvm-svn: 104216 | 
| | 
| 
| 
| 
| 
| | TargetMachine.h and put it in its own namespace.
llvm-svn: 104147 | 
| | 
| 
| 
| 
| 
| 
| | - Change the logic DisableFramePointerElim() to check for the
  -disable-non-leaf-fp-elim before -disable-fp-elim.
llvm-svn: 103990 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| | the variable actually tracks.
N.B., several back-ends are using "HasCalls" as being synonymous for something
that adjusts the stack. This isn't 100% correct and should be looked into.
llvm-svn: 103802 | 
| | 
| 
| 
| 
| 
| | argument out of the entry block. rdar://7937489
llvm-svn: 102993 | 
| | 
| 
| 
| 
| 
| 
| | handles argument lowering anyway, so there's no need for special
casing here.
llvm-svn: 102828 | 
| | 
| 
| 
| | llvm-svn: 102817 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | code, and to eliminate the need for the SelectionDAGBuilder
state to be live during CodeGenAndEmitDAG calls.
Call SDB->clear() before CodeGenAndEmitDAG calls instead of
before it, and move the CurDAG->clear() out of SelectionDAGBuilder,
which doesn't own the DAG, and into CodeGenAndEmitDAG.
llvm-svn: 102814 | 
| | 
| 
| 
| 
| 
| | changes before doing phi lowering for switches.
llvm-svn: 102809 | 
| | 
| 
| 
| 
| 
| 
| | instruction selection is done; it's confusing to see parts of it printed,
while other parts are omitted, along the way.
llvm-svn: 102771 | 
| | 
| 
| 
| | llvm-svn: 102602 | 
| | 
| 
| 
| | llvm-svn: 102590 | 
| | 
| 
| 
| 
| 
| | entry block.
llvm-svn: 102581 | 
| | 
| 
| 
| | llvm-svn: 102573 | 
| | 
| 
| 
| 
| 
| | instructions for function arguments early and insert them after instruction selection is done.
llvm-svn: 102554 | 
| | 
| 
| 
| 
| 
| | itself too.
llvm-svn: 102176 | 
| | 
| 
| 
| 
| 
| | into SelectionDAGBuilder itself.
llvm-svn: 102128 | 
| | 
| 
| 
| 
| 
| | and into SelectionDAGBuilder and FastISel.
llvm-svn: 102123 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| | FunctionLoweringInfo, as it isn't SelectionDAG-specific. This isn't
completely natural, as PHI node state is not per-function but rather
per-basic-block, however there's currently no other convenient
per-basic-block state to group it with.
llvm-svn: 102109 | 
| | 
| 
| 
| | llvm-svn: 101977 | 
| | 
| 
| 
| 
| 
| 
| 
| | into SelectionDAGBuilder. This avoids a separate pass over the
instructions, and has the side effect of providing debug location
information to the copy.
llvm-svn: 101906 | 
| | 
| 
| 
| 
| 
| | they end up doing nothing.
llvm-svn: 101904 | 
| | 
| 
| 
| 
| 
| | in the case where a basic block is split.
llvm-svn: 101850 | 
| | 
| 
| 
| 
| 
| | SelectionDAGBuilder, where it doesn't have to be as complicated.
llvm-svn: 101848 | 
| | 
| 
| 
| 
| 
| | responsible for figuring out what that's supposed to be on its own.
llvm-svn: 101844 | 
| | 
| 
| 
| 
| 
| 
| | where multiple blocks are emitted; functions which do this need to return
the new BB so that their callers can stay current.
llvm-svn: 101843 | 
| | 
| 
| 
| | llvm-svn: 101832 | 
| | 
| 
| 
| 
| 
| | an argument to things that need it.
llvm-svn: 101825 | 
| | 
| 
| 
| 
| 
| 
| | need it, just pass around the parent block of the current instruction
explicitly.
llvm-svn: 101822 | 
| | 
| 
| 
| 
| 
| | fetch one from the MachineFunction.
llvm-svn: 101807 | 
| | 
| 
| 
| 
| 
| | than just getting one through a TargetLowering.
llvm-svn: 101802 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | const_casts, and it reinforces the design of the Target classes being
immutable.
SelectionDAGISel::IsLegalToFold is now a static member function, because
PIC16 uses it in an unconventional way. There is more room for API
cleanup here.
And PIC16's AsmPrinter no longer uses TargetLowering.
llvm-svn: 101635 | 
| | 
| 
| 
| | llvm-svn: 101621 | 
| | 
| 
| 
| | llvm-svn: 101480 |