Commit Graph

47310 Commits

Author SHA1 Message Date
Owen Anderson 9cd1a5e530 FastEmitInst_extractsubreg doesn't need to be passed the register class. It can get it from MachineRegisterInfo instead.
llvm-svn: 55476
2008-08-28 17:47:37 +00:00
Dan Gohman 04cf2e4540 Revert r55467; it causes regressions in UnitTests/Vector/divides,
Benchmarks/sim/sim, and others on x86-64.

llvm-svn: 55475
2008-08-28 17:22:54 +00:00
Rafael Espindola 029c1c8460 Correctly resize the Parts array.
llvm-svn: 55471
2008-08-28 14:24:45 +00:00
Steve Naroff 94e3ab20b7 Fix Parser::ParseDeclaratorInternal(): add langopts test when recognizing blocks.
llvm-svn: 55468
2008-08-28 10:07:06 +00:00
Evan Cheng 6975602024 If a copy isn't coalesced, but its src is defined by trivial computation. Re-materialize the src to replace the copy.
llvm-svn: 55467
2008-08-28 07:53:51 +00:00
Evan Cheng 97af20f85f FsFLD0S{S|D} and V_SETALLONES are as cheap as moves.
llvm-svn: 55466
2008-08-28 07:52:25 +00:00
Argyrios Kyrtzidis 41f1dbc66d Fix compilation error on MSVC.
llvm-svn: 55465
2008-08-28 07:45:57 +00:00
Ted Kremenek 803e7e1e47 Ubigraph visualization: represent cached nodes with a different style.
llvm-svn: 55463
2008-08-28 05:02:09 +00:00
Ted Kremenek de8008a130 Enhance ubiviz to support vertex styles.
llvm-svn: 55462
2008-08-28 05:01:37 +00:00
Daniel Dunbar 4932b36f54 NeXT: Emit mostly-correct property type encoding.
- Added ASTContext::getObjCEncodingForPropertyDecl.

llvm-svn: 55461
2008-08-28 04:38:10 +00:00
Chris Lattner e5a22c06c5 Make the verifier reject instructions which have null pointers
for operands: rdar://6179606.  no testcase, because I can't write
a .ll file that is this broken ;-)

llvm-svn: 55460
2008-08-28 04:02:44 +00:00
Ted Kremenek 266ec3fb4e Automatically execute ubiviz.
Cleanup ubigraph files when don't drawing the graphs.

llvm-svn: 55459
2008-08-28 03:54:51 +00:00
Chris Lattner 65df1188c6 Clear the intervals list in "destroy", patch by
Prakash Prabhu!

llvm-svn: 55458
2008-08-28 03:33:03 +00:00
Dale Johannesen 41be0d4445 Split the ATOMIC NodeType's to include the size, e.g.
ATOMIC_LOAD_ADD_{8,16,32,64} instead of ATOMIC_LOAD_ADD.
Increased the Hardcoded Constant OpActionsCapacity to match.
Large but boring; no functional change.

This is to support partial-word atomics on ppc; i8 is
not a valid type there, so by the time we get to lowering, the
ATOMIC_LOAD nodes looks the same whether the type was i8 or i32.
The information can be added to the AtomicSDNode, but that is the
largest SDNode; I don't fully understand the SDNode allocation,
but it is sensitive to the largest node size, so increasing
that must be bad.  This is the alternative.

llvm-svn: 55457
2008-08-28 02:44:49 +00:00
Dale Johannesen 897b2380d8 This test crashes on non-x86 host; make SSE explicit.
Feel free to fix a better way!

llvm-svn: 55456
2008-08-28 01:51:09 +00:00
Ted Kremenek c1cf430051 Update checker build.
llvm-svn: 55455
2008-08-28 01:42:51 +00:00
Ted Kremenek 1a42278a19 Fix regression: immediately terminate ccc-analyzer when gcc reports an error.
llvm-svn: 55452
2008-08-28 01:18:44 +00:00
Dan Gohman 0e92132f2a Fix a missing #include. Patch by Andrew John Hughes.
llvm-svn: 55451
2008-08-28 00:20:07 +00:00
Dan Gohman e1a9a780a5 Reorganize the lifetimes of the major objects SelectionDAGISel
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
2008-08-27 23:52:12 +00:00
Ted Kremenek 3a01c1eb8e Update Xcode project.
llvm-svn: 55449
2008-08-27 23:13:22 +00:00
Ted Kremenek b5ef37f28e Make the destructor of ConstraintManager virtual.
llvm-svn: 55448
2008-08-27 23:13:01 +00:00
Ted Kremenek 5bc033b934 Update checker build.
llvm-svn: 55447
2008-08-27 22:49:55 +00:00
Ted Kremenek c8288b408a Ubigraph-rendered ExplodedGraphs now have arrows and are oriented downward.
llvm-svn: 55446
2008-08-27 22:46:55 +00:00
Ted Kremenek d461d7ad7e Added Ubigraph visualization for the static analyzer (this is pretty alpha quality).
llvm-svn: 55442
2008-08-27 22:31:43 +00:00
Ted Kremenek 5cc989dad1 Update Xcode project.
llvm-svn: 55441
2008-08-27 22:31:20 +00:00
Ted Kremenek 7b62806272 Remove regression where the analyzer was not called.
llvm-svn: 55440
2008-08-27 22:30:34 +00:00
Owen Anderson 5f57bc2247 Add a helper method that will be used to support EXTRACT_SUBREG for selecting trunc's in fast-isel.
llvm-svn: 55439
2008-08-27 22:30:02 +00:00
Bill Wendling 76105a4a4f Make "movdq2q" and "movq2dq" dependent upon having SSE2 because they use the
SSE2 registers as well as the MMX registers.

llvm-svn: 55436
2008-08-27 21:32:04 +00:00
Bill Wendling 25b4cad510 Put file scoped constants in an anonymous namespace. Use the "using namespace
llvm" for consistency.

llvm-svn: 55435
2008-08-27 21:10:13 +00:00
Evan Cheng f016b263e2 Move the check whether it's worth remating to caller.
llvm-svn: 55434
2008-08-27 20:58:54 +00:00
Devang Patel d6adbb6a0f Do not apply the transformation if the target does not support DestTy natively.
llvm-svn: 55433
2008-08-27 20:55:23 +00:00
Devang Patel d3a1b46aad Backout 55429
llvm-svn: 55432
2008-08-27 20:51:49 +00:00
Dan Gohman 61cfa3095d Fix FastISel's bitcast code for the case where getRegForValue fails.
llvm-svn: 55431
2008-08-27 20:41:38 +00:00
Evan Cheng 57dc078570 Refactor isSafeToReMat out of 2addr pass.
llvm-svn: 55430
2008-08-27 20:33:50 +00:00
Devang Patel fdef44d7c4 Add facility to create a target.
llvm-svn: 55429
2008-08-27 20:00:27 +00:00
Owen Anderson 90609850b2 Use TargetLowering to get the types in fast isel, which handles pointer types correctly for our purposes.
llvm-svn: 55428
2008-08-27 18:58:30 +00:00
Dan Gohman d01789be23 Don't check TLI.getOperationAction. The FastISel way is to
just try to do the action and let the tablegen-generated code
determine if there is target-support for an operation.

llvm-svn: 55427
2008-08-27 18:15:05 +00:00
Dan Gohman b0b5a27438 Add a new FastISel method, getRegForValue, which takes care of
the details of materializing constants and other values into
registers, and make use of it in several places.

llvm-svn: 55426
2008-08-27 18:10:19 +00:00
Dan Gohman f2a6c1579f Add a comment about the current floating-point constant code in FastISel.
llvm-svn: 55425
2008-08-27 18:01:42 +00:00
Devang Patel cf7ca5d0ba Fix typos and whitespaces. Other cosmetic changes based on feedback.
llvm-svn: 55424
2008-08-27 17:50:18 +00:00
Chris Lattner 81e23091d9 Minor cleanup.
llvm-svn: 55423
2008-08-27 17:36:58 +00:00
Dan Gohman 7f2777e8d2 Reinstate the x86-64 portion of r55190. When doing extloads into
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
2008-08-27 17:33:15 +00:00
Dan Gohman 3a3a52de58 Optimize ScheduleDAGRRList's topological sort to use one pass instead
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
2008-08-27 16:29:48 +00:00
Dan Gohman 9cbdedcbcf Optimize ScheduleDAG's ComputeDepths and ComputeHeights to not need
a scratch std::vector.

llvm-svn: 55420
2008-08-27 16:27:25 +00:00
Dan Gohman a5b15bd09b Remove the std::ostream form of PseudoSourceValue's print,
which isn't needed anymore.

llvm-svn: 55419
2008-08-27 16:19:44 +00:00
Dan Gohman 6d153b02c9 Update a comment to reflect recent changes.
llvm-svn: 55418
2008-08-27 16:18:22 +00:00
Steve Naroff ec33ed9ced First wave of changes to support "blocks" (an extension to C).
This commit adds the declaration syntax (and associated type).

llvm-svn: 55417
2008-08-27 16:04:49 +00:00
Dan Gohman 539f74c87d Unbreak PseudoSourceValue::print. This fixes -print-machine-instrs
and various other things.

llvm-svn: 55415
2008-08-27 15:24:43 +00:00
Dan Gohman 6d618724b5 Diagnose uses of unsized types with the byval attribute in the
verifier. See PR2711 for details.

llvm-svn: 55414
2008-08-27 14:48:06 +00:00
Dan Gohman 4051bf47ec Update wording, as aggregates are now first-class.
llvm-svn: 55413
2008-08-27 14:44:57 +00:00