| Commit message (Collapse) | Author | Age | Files | Lines | 
| ... |  | 
| | 
| 
| 
| 
| 
|  | 
This fixes PR714.
llvm-svn: 42309
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
|  | 
both results with a single div or idiv instruction. This uses new X86ISD
nodes for DIV and IDIV which are introduced during the legalize phase
so that the SelectionDAG's CSE can automatically eliminate redundant
computations.
llvm-svn: 42308
 | 
| | 
| 
| 
|  | 
llvm-svn: 42306
 | 
| | 
| 
| 
|  | 
llvm-svn: 42300
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
for (i=A; i<N; i++) {
  if (i < X && i > Y)
    do_something();
}
is transformed into
U=min(N,X); L=max(A,Y);
for (i=L;i<U;i++)
  do_somethihg();                            
llvm-svn: 42299
 | 
| | 
| 
| 
| 
| 
|  | 
of zero, infinity, and NaNs.
llvm-svn: 42298
 | 
| | 
| 
| 
| 
| 
| 
|  | 
the check to see if the assembler supports .loc from X86TargetLowering
into the superclass TargetLowering.
llvm-svn: 42297
 | 
| | 
| 
| 
|  | 
llvm-svn: 42294
 | 
| | 
| 
| 
| 
| 
| 
| 
|  | 
dependency). These are a bunch of instructions that are duplicated so the x86 backend can support both the old and new schemes at the same time. They will be deleted after
all the kinks are worked out.
llvm-svn: 42285
 | 
| | 
| 
| 
| 
| 
|  | 
physical register dependency. The BURR scheduler can now backtrace and duplicate instructions in order to avoid "expensive / impossible to copy" values (e.g. status flag EFLAGS for x86) from being clobbered.
llvm-svn: 42284
 | 
| | 
| 
| 
|  | 
llvm-svn: 42283
 | 
| | 
| 
| 
|  | 
llvm-svn: 42282
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
have situations where an SSE instruction turns into
multiple blocks, with the live range of an x87
register crossing them.  To do this correctly make
sure we examine all blocks when inserting
FP_REG_KILL.  PR 1697.  (This was exposed by my
fix for PR 1681, but the same thing could happen
mixing x87 long double with SSE.)
llvm-svn: 42281
 | 
| | 
| 
| 
|  | 
llvm-svn: 42280
 | 
| | 
| 
| 
|  | 
llvm-svn: 42279
 | 
| | 
| 
| 
| 
| 
| 
|  | 
instead of ISD::LABEL with a manual .debug_line entry when the assembler
supports .file and .loc directives.
llvm-svn: 42278
 | 
| | 
| 
| 
| 
| 
|  | 
such as will happen when .loc directives are used.
llvm-svn: 42277
 | 
| | 
| 
| 
| 
| 
|  | 
consistency with the other currently empty sections.
llvm-svn: 42276
 | 
| | 
| 
| 
| 
| 
|  | 
use with .loc directives.
llvm-svn: 42275
 | 
| | 
| 
| 
| 
| 
|  | 
aren't really usable without each other. 
llvm-svn: 42274
 | 
| | 
| 
| 
| 
| 
|  | 
Fixes PR1698.
llvm-svn: 42273
 | 
| | 
| 
| 
| 
| 
|  | 
file numbers to use with .loc directives.
llvm-svn: 42272
 | 
| | 
| 
| 
| 
| 
|  | 
Fixed some comments
llvm-svn: 42271
 | 
| | 
| 
| 
|  | 
llvm-svn: 42270
 | 
| | 
| 
| 
| 
| 
| 
| 
|  | 
and time usage.
Fixup operator == to make this work, and add a resize method to DenseMap
so we can resize our hashtable once we know how big it should be.
llvm-svn: 42269
 | 
| | 
| 
| 
|  | 
llvm-svn: 42268
 | 
| | 
| 
| 
| 
| 
|  | 
code that creates the label too.
llvm-svn: 42265
 | 
| | 
| 
| 
| 
| 
| 
|  | 
in ExpandEXTRACT_VECTOR_ELT and SplitVectorOp. This fixes an abort
in the included testcase.
llvm-svn: 42264
 | 
| | 
| 
| 
|  | 
llvm-svn: 42262
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
asm to die with:
ScheduleDAG.cpp:269: failed assertion `false && "Couldn't find the register class"'
instead of:
failed assertion `RegMap->getRegClass(VReg) == RC && "Register class of operand and regclass of use don't agree!"'
yay.
llvm-svn: 42259
 | 
| | 
| 
| 
|  | 
llvm-svn: 42257
 | 
| | 
| 
| 
| 
| 
|  | 
The two remaining unmerged parts are DFSPass, and the Calculate().
llvm-svn: 42255
 | 
| | 
| 
| 
| 
| 
|  | 
-1. / -0.
llvm-svn: 42254
 | 
| | 
| 
| 
| 
| 
| 
| 
|  | 
into a separate header file.
Next step: merging PostDominatorCalculation.h with DominatorCalculation.h.
llvm-svn: 42251
 | 
| | 
| 
| 
| 
| 
| 
| 
|  | 
difference is between it
and the PostDomTree version first.
llvm-svn: 42250
 | 
| | 
| 
| 
|  | 
llvm-svn: 42249
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
DominatorCalculation.h.  This
change is not useful in and of itself, but it lays the groundwork for combining
the dominator and postdominator implementations.
Also, factor a few methods that are common to DominatorTree and PostDominatorTree
into DominatorTreeBase.  Again, this will make merging the two calculation methods
simpler in the future.
llvm-svn: 42248
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
keep f32 in SSE registers and f64 in x87.  This
is effectively a new codegen mode.
Change addLegalFPImmediate to permit float and
double variants to do different things.
Adjust callers.
llvm-svn: 42246
 | 
| | 
| 
| 
|  | 
llvm-svn: 42239
 | 
| | 
| 
| 
|  | 
llvm-svn: 42222
 | 
| | 
| 
| 
|  | 
llvm-svn: 42220
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
bit width instead of number of words allocated, which
makes it actually work for int->APF conversions.
Adjust callers.  Add const to one of the APInt constructors
to prevent surprising match when called with const
argument.
llvm-svn: 42210
 | 
| | 
| 
| 
|  | 
llvm-svn: 42209
 | 
| | 
| 
| 
|  | 
llvm-svn: 42205
 | 
| | 
| 
| 
|  | 
llvm-svn: 42204
 | 
| | 
| 
| 
|  | 
llvm-svn: 42193
 | 
| | 
| 
| 
| 
| 
|  | 
Implement calls to functions with byval arguments on X86
llvm-svn: 42192
 | 
| | 
| 
| 
|  | 
llvm-svn: 42189
 | 
| | 
| 
| 
| 
| 
| 
| 
|  | 
modest
speedup for GVN.
llvm-svn: 42185
 | 
| | 
| 
| 
| 
| 
|  | 
initializer is null.
llvm-svn: 42182
 |