- Aug 28, 2008
-
-
Dan Gohman authored
works with. SelectionDAG, FunctionLoweringInfo, and SelectionDAGLowering objects now get created once per SelectionDAGISel instance, and can be reused across blocks and across functions. Previously, they were created and destroyed each time they were needed. This reorganization simplifies the handling of PHI nodes, and also SwitchCases, JumpTables, and BitTestBlocks. This simplification has the side effect of fixing a bug in FastISel where successor PHI nodes weren't being updated correctly. This is also a step towards making the transition from FastISel into and out of SelectionDAG faster, and also making plain SelectionDAG faster on code with lots of little blocks. llvm-svn: 55450
-
Owen Anderson authored
llvm-svn: 55439
-
- Aug 27, 2008
-
-
Bill Wendling authored
SSE2 registers as well as the MMX registers. llvm-svn: 55436
-
Bill Wendling authored
llvm" for consistency. llvm-svn: 55435
-
Evan Cheng authored
llvm-svn: 55434
-
Devang Patel authored
llvm-svn: 55433
-
Dan Gohman authored
llvm-svn: 55431
-
Evan Cheng authored
llvm-svn: 55430
-
Owen Anderson authored
Use TargetLowering to get the types in fast isel, which handles pointer types correctly for our purposes. llvm-svn: 55428
-
Dan Gohman authored
just try to do the action and let the tablegen-generated code determine if there is target-support for an operation. llvm-svn: 55427
-
Dan Gohman authored
the details of materializing constants and other values into registers, and make use of it in several places. llvm-svn: 55426
-
Dan Gohman authored
llvm-svn: 55425
-
Devang Patel authored
llvm-svn: 55424
-
Chris Lattner authored
llvm-svn: 55423
-
Dan Gohman authored
64-bit registers from 16-bit and smaller memory locations, prefer instructions that define the entire 64-bit register, to avoid partial-register updates. llvm-svn: 55422
-
Dan Gohman authored
of two, and to not need a scratch std::vector. Also, compute the ordering immediately in the result array, instead of in another scratch std::vector that is copied to the result array. llvm-svn: 55421
-
Dan Gohman authored
a scratch std::vector. llvm-svn: 55420
-
Dan Gohman authored
which isn't needed anymore. llvm-svn: 55419
-
Dan Gohman authored
verifier. See PR2711 for details. llvm-svn: 55414
-
Dan Gohman authored
llvm-svn: 55413
-
Evan Cheng authored
llvm-svn: 55409
-
Dan Gohman authored
llvm-svn: 55401
-
Owen Anderson authored
llvm-svn: 55400
-
Owen Anderson authored
llvm-svn: 55399
-
Owen Anderson authored
This simultaneously makes the code simpler and adds support for sext as well. llvm-svn: 55398
-
Owen Anderson authored
llvm-svn: 55396
-
Gabor Greif authored
llvm-svn: 55394
-
Owen Anderson authored
llvm-svn: 55393
-
Owen Anderson authored
Put a heuristic in place to prevent GVN from falling into bad cases with massively complicated CFGs. This speeds up a particular testcase from 12+ hours to 5 seconds with little perceptible loss of quality. llvm-svn: 55391
-
- Aug 26, 2008
-
-
Dan Gohman authored
of two, and to not need a scratch std::vector. Also, use the SelectionDAG's topological sort in LegalizeDAG instead of having a separate implementation. llvm-svn: 55389
-
Dan Gohman authored
llvm-svn: 55387
-
Dan Gohman authored
llvm-svn: 55384
-
Dan Gohman authored
llvm-svn: 55383
-
Owen Anderson authored
llvm-svn: 55381
-
Owen Anderson authored
allowing it to support the full range of conversions people might ask for in a correct manner. llvm-svn: 55378
-
Owen Anderson authored
llvm-svn: 55377
-
Owen Anderson authored
was inserted or not. This allows bitcast in fast isel to properly handle the case where an appropriate reg-to-reg copy is not available. llvm-svn: 55375
-
Devang Patel authored
llvm-svn: 55374
-
Owen Anderson authored
llvm-svn: 55373
-
Chris Lattner authored
assign it to a version of the xmm register with the regclass that matches its type. This fixes PR2715, a bug handling some crazy xpcom case in mozilla. llvm-svn: 55358
-