Duncan Sands
89720bbd11
Remove some not-really-used variables, as warned
...
about by icc (#593 , partial). Patch by Erick Tryzelaar.
llvm-svn: 81115
2009-09-06 12:41:19 +00:00
Benjamin Kramer
e3c9d23bea
It's a bool, so treat it like one. Fixes a MSVC warning.
...
llvm-svn: 81112
2009-09-06 12:10:17 +00:00
Duncan Sands
2fbeaf084f
Remove some unused variables and methods warned about by
...
icc (#177 , partial). Patch by Erick Tryzelaar.
llvm-svn: 81106
2009-09-06 08:33:48 +00:00
Devang Patel
f03667e20e
Detect VLAs.
...
Do not use DenseMap operator[] because it inserts new entry if lookup fails. Use find() to check an entry in a DenseMap first.
llvm-svn: 81058
2009-09-05 00:34:14 +00:00
Devang Patel
f5d5360065
Ignore malformed global variable debug info.
...
llvm-svn: 81055
2009-09-04 23:59:07 +00:00
Lang Hames
3fffe62177
Replaces uses of unsigned for indexes in LiveInterval and VNInfo with
...
a new class, MachineInstrIndex, which hides arithmetic details from
most clients. This is a step towards allowing the register allocator
to update/insert code during allocation.
llvm-svn: 81040
2009-09-04 20:41:11 +00:00
Duncan Sands
bc74cae983
Use delete[] to match new[] (found by valgrind).
...
llvm-svn: 80997
2009-09-04 11:59:43 +00:00
Evan Cheng
3d2fce01aa
Run branch folding if if-converter make some transformations.
...
llvm-svn: 80994
2009-09-04 07:47:40 +00:00
Evan Cheng
fc4eef183b
Fix comment for consistency sake.
...
llvm-svn: 80993
2009-09-04 07:46:30 +00:00
Eric Christopher
a3438c8bc2
If there's a calling convention attach it to the rewind function call.
...
llvm-svn: 80976
2009-09-04 01:14:14 +00:00
Evan Cheng
1f6e5eb07b
Funky indentation.
...
llvm-svn: 80971
2009-09-03 23:54:22 +00:00
Dan Gohman
aa92dc1e61
LLVM currently represents floating-point negation as -0.0 - x. Fix
...
FastISel to recognize this pattern and emit a floating-point
negation using xor.
llvm-svn: 80963
2009-09-03 22:53:57 +00:00
David Goodwin
1d5d245453
Don't crash when target has no itineraries.
...
llvm-svn: 80962
2009-09-03 22:48:51 +00:00
David Goodwin
6c08cfcfa0
Create our own block initializer for kill fixups as the scheduling one wasn't doing the right thing.
...
llvm-svn: 80958
2009-09-03 22:15:25 +00:00
Bob Wilson
5c7d9ca53d
Overhaul the TwoAddressInstructionPass to simplify the logic, especially
...
for the complicated case where one register is tied to multiple destinations.
This avoids the extra scan of instruction operands that was introduced by
my recent change. I also pulled some code out into a separate
TryInstructionTransform method, added more comments, and renamed some
variables.
Besides all those changes, this takes care of a FIXME in the code regarding
an assumption about there being a single tied use of a register when
converting to a 3-address form. I'm not aware of cases where that assumption
is violated, but the code now only attempts to transform an instruction,
either by commuting its operands or by converting to a 3-address form,
for the simple case where there is a single pair of tied operands.
llvm-svn: 80945
2009-09-03 20:58:42 +00:00
Dan Gohman
d0d5e685da
Recognize more opportunities to use SSE min and max instructions,
...
swapping the operands if necessary.
llvm-svn: 80940
2009-09-03 20:34:31 +00:00
Lang Hames
0b3720b3c3
Fixed a test that ensures the LocalRewriter does not attempt to
...
avoid reloads by reusing clobbered registers.
This was causing issues in 256.bzip2 when compiled with PIC for
a while (starting at r78217), though the problem has since been masked.
llvm-svn: 80872
2009-09-03 02:52:02 +00:00
Bob Wilson
bc751989f1
Rearrange code to eliminate redundancy and avoid gotos.
...
llvm-svn: 80798
2009-09-02 16:35:35 +00:00
Sandeep Patel
68c5f477fa
Retype from unsigned to CallingConv::ID accordingly. Approved by Bob Wilson.
...
llvm-svn: 80773
2009-09-02 08:44:58 +00:00
Bob Wilson
fcd618bf1d
Avoid calling removeVirtualRegisterKilled which iterates over the operands
...
to find the kill, since we already have the operand.
llvm-svn: 80736
2009-09-01 23:18:46 +00:00
Bob Wilson
efe96918f8
Refactor some code into separate functions. No functional changes.
...
llvm-svn: 80733
2009-09-01 22:51:08 +00:00
Bob Wilson
71e77ea89b
Move use of LV inside condition that guards for null LV.
...
llvm-svn: 80731
2009-09-01 22:19:00 +00:00
Daniel Dunbar
f7a14aa43d
Remove Offset from ExternalSybmol MachineOperands, this is unused (and at least partly unsupported, in X86 encoding at least).
...
llvm-svn: 80726
2009-09-01 22:06:46 +00:00
Bruno Cardoso Lopes
92e18c456a
Fix ELF Writter related memory leaks
...
llvm-svn: 80717
2009-09-01 19:25:52 +00:00
Jim Grosbach
e4459e466f
reduce size of SmallString to something more reasonable
...
llvm-svn: 80710
2009-09-01 18:55:08 +00:00
Jim Grosbach
c5fcbdc7ee
Use raw_ostream instead of sstream
...
llvm-svn: 80704
2009-09-01 18:49:12 +00:00
David Goodwin
7f6516949b
Add hidden flags to allow binary search of post-RA scheduling errors.
...
llvm-svn: 80702
2009-09-01 18:34:03 +00:00
Jim Grosbach
5afbf2b541
revert inadvertant change from previous commit
...
llvm-svn: 80689
2009-09-01 17:19:13 +00:00
Jim Grosbach
9372f4d7d5
Simply LSDA lable emission to use a direct special-case output instead of
...
EmitLabel()
llvm-svn: 80677
2009-09-01 16:43:35 +00:00
Bob Wilson
33b408a10f
Fix pr4843: When an instruction has multiple destination registers that are
...
tied to different source registers, the TwoAddressInstructionPass needs to
be smarter. Change it to check before replacing a source register whether
that source register is tied to a different destination register, and if so,
defer handling it until a subsequent iteration.
llvm-svn: 80654
2009-09-01 04:18:40 +00:00
Jim Grosbach
20eac92d88
Clean up LSDA name generation and use for SJLJ exception handling. This
...
makes an eggregious hack somewhat more palatable. Bringing the LSDA forward
and making it a GV available for reference would be even better, but is
beyond the scope of what I'm looking to solve at this point.
Objective C++ code could generate function names that broke the previous
scheme. This fixes that.
llvm-svn: 80649
2009-09-01 01:57:56 +00:00
Devang Patel
b2de5fa689
Subprogram is a scope. Derive DISubprogram from DIScope.
...
llvm-svn: 80637
2009-08-31 22:47:13 +00:00
Devang Patel
869529c58c
Rename DIBlock as DILexicalBlock.
...
llvm-svn: 80633
2009-08-31 22:00:15 +00:00
Bob Wilson
e98396d3fc
Use early exit and reduce indentation.
...
llvm-svn: 80631
2009-08-31 21:54:55 +00:00
Bob Wilson
53b6a02dd1
If the tied registers are already the same, there is no need to change
...
them. Move the code to make that change inside the conditional.
llvm-svn: 80630
2009-08-31 21:54:16 +00:00
Caroline Tice
c87c1e2cfd
Add flag to mark structs for Apple Block "byref" variables; also add code to
...
modify the type and location debug information for these variables to match the
programmer's expectations.
llvm-svn: 80625
2009-08-31 21:19:37 +00:00
David Goodwin
c8985204d9
Don't mark a register live at an undef use.
...
llvm-svn: 80621
2009-08-31 20:47:02 +00:00
Devang Patel
9fda4bd998
Simplify isDerivedType() and other predicate interface.
...
llvm-svn: 80602
2009-08-31 18:49:10 +00:00
Bill Wendling
6627c4ec82
Output a hex value, because all of the others are hex.
...
llvm-svn: 80601
2009-08-31 18:26:48 +00:00
Duncan Sands
9cf8bcb69d
Revert commit 80428. It completely broke exception
...
handling on x86-32 linux.
llvm-svn: 80592
2009-08-31 16:45:16 +00:00
Jim Grosbach
ce713134b8
PR4747
...
Shared landing pads run into trouble with SJLJ, as the dispatch table is
mapped to call sites, and merging the pads will throw that off. There needs
to be a one-to-one mapping of landing pad exception table entries to invoke
call points.
Detecting the shared pad during lowering of SJLJ info insn't sufficient, as
the dispatch function may still need separate destinations to properly
handle phi-nodes.
llvm-svn: 80530
2009-08-31 01:35:03 +00:00
Bill Wendling
dc09af3ef5
Nuke moribund "std::string" version of EOL(..., Encoding).
...
llvm-svn: 80466
2009-08-30 00:28:57 +00:00
Bill Wendling
39bb29f7fe
- Add target lowering methods to get the preferred format for the FDE and LSDA
...
encodings.
- Make some of the values emitted by the FDEs dependent upon the pointer
size. This is in line with how GCC does things. And it has the benefit of
working for Darwin in 64-bit mode now.
llvm-svn: 80428
2009-08-29 12:20:54 +00:00
Bill Wendling
f8b28e4327
Add a form of EOL which emits the text version of a DWARF format encoding. This
...
doesn't handle all values of the formatting. Those can be added as needed.
llvm-svn: 80427
2009-08-29 12:17:53 +00:00
Eric Christopher
743dc0ef40
Make the augmentation size and next set of bytes agree on size,
...
and make the reference pointer size as it should be.
Fixes an abort on a testcase derived from libunwind's personality
test in 64-bit.
llvm-svn: 80414
2009-08-29 01:12:46 +00:00
David Goodwin
7cb103dc8b
Another stab at fixing up register kill flags after post-RA scheduling.
...
llvm-svn: 80410
2009-08-29 00:11:13 +00:00
Devang Patel
80ae34974b
Reapply 79977.
...
Use MDNodes to encode debug info in llvm IR.
llvm-svn: 80406
2009-08-28 23:24:31 +00:00
Eric Christopher
d517ac0682
Nuke trailing whitespace.
...
llvm-svn: 80401
2009-08-28 22:33:43 +00:00
Devang Patel
3082c01d68
Closure is a very generic name. Use AppleBlock instead.
...
llvm-svn: 80307
2009-08-27 23:51:51 +00:00
Dan Gohman
ed10d7c441
Adjust the MachineBasicBlock verifier rules to be more
...
tolerant of blocks that end with "unreachable".
llvm-svn: 80270
2009-08-27 18:14:26 +00:00