Eric Christopher
2e9c3e61ee
Be more layout aware here and swap the successor and branch condition
...
if it means we get a fallthrough.
llvm-svn: 130404
2011-04-28 16:52:09 +00:00
Chris Lattner
6fa384f4a7
centralize "marking for deletion" into a helper function. Pass GVN around to
...
static functions instead of passing around tons of random ivars.
llvm-svn: 130403
2011-04-28 16:36:48 +00:00
Chris Lattner
bc11964fe9
Promote toErase to be an ivar of the GVN class.
...
llvm-svn: 130401
2011-04-28 16:18:52 +00:00
Rafael Espindola
f75a67d261
Add a getExprForPersonalitySymbol method to MCAsmInfo. Use it when
...
converting the symbol passed to .cfi_personality into bytes is the file.
llvm-svn: 130400
2011-04-28 16:09:09 +00:00
Rafael Espindola
4f9a76ab0b
Mark the EH symbol global or weak if the corresponding function is.
...
llvm-svn: 130397
2011-04-28 12:50:37 +00:00
Jay Foad
97fa854251
Fix typos in comments.
...
llvm-svn: 130396
2011-04-28 09:12:47 +00:00
Chandler Carruth
bb0599c1f4
Fix the last -Wnon-pod-memset I'm seeing. This is benign, but appears
...
a bit more sinister as the memset doesn't do what the constructor does.
There seems to be a cleaner solution than a cast here though, instead we
can point the memset destination into the union its actually trying to
clear.
An alternative is to point to the Untyped member of this union. Review
appreciated, and if that is cleaner I'm happy to switch. All of these
should be functionally equivalent to the original code.
llvm-svn: 130395
2011-04-28 08:37:18 +00:00
Chandler Carruth
e4c22377a4
Revert an unintended commit. Very sorry for this one.
...
llvm-svn: 130393
2011-04-28 08:18:22 +00:00
Chandler Carruth
c01a726544
Fix more -Wnon-pod-memset warnings.
...
llvm-svn: 130392
2011-04-28 08:17:08 +00:00
Chandler Carruth
04ab0a5071
nuke gold
...
llvm-svn: 130391
2011-04-28 08:17:05 +00:00
Chris Lattner
594c4c5823
teach GVN to widen integer loads when they are overaligned, when doing an
...
wider load would allow elimination of subsequent loads, and when the wider
load is still a native integer type. This eliminates a ton of loads on
various benchmarks involving struct fields, though it is somewhat hobbled
by clang not being very aggressive about field alignment.
This is yet another step along the way towards resolving PR6627.
llvm-svn: 130390
2011-04-28 07:29:08 +00:00
Eric Christopher
bea4df9acc
Let the immediate leaf pattern take transforms and switch the signed
...
immediate patterns in arm to using the pattern.
Handles rdar://9299434
llvm-svn: 130386
2011-04-28 05:49:04 +00:00
Chris Lattner
61521f8481
move PR9803 to this readme.
...
llvm-svn: 130385
2011-04-28 05:33:16 +00:00
Ted Kremenek
2cd5c3603f
Add utility method to DenseMap to return the amount of memory used for its buckets.
...
llvm-svn: 130382
2011-04-28 04:52:57 +00:00
Rafael Espindola
7bc992c8d3
Add a small temporary hack for producing identical eh_frame sections on OS X.
...
This removes one of the main advantages of moving eh_frame to MC, but
makes the transition a lot easier to debug (run md5).
llvm-svn: 130379
2011-04-28 04:04:14 +00:00
Rafael Espindola
d63b896d05
Produce the EH_frame# symbols if needed.
...
llvm-svn: 130378
2011-04-28 03:26:11 +00:00
Rafael Espindola
d2ef63ca76
Forward isFunctionEHFrameSymbolPrivate. If it is false, produce the foo.eh
...
symbols.
llvm-svn: 130375
2011-04-28 02:46:42 +00:00
Devang Patel
900ceb725b
Teach dwarf writer to handle complex address expression for .debug_loc entries.
...
This fixes clang generated blocks' variables' debug info.
Radar 9279956.
llvm-svn: 130373
2011-04-28 02:22:40 +00:00
Chris Lattner
70762e6755
silence some -Wnon-pod-memset warnings, since std::pair is not POD.
...
llvm-svn: 130364
2011-04-28 00:55:53 +00:00
Eli Friedman
86181251f3
Fix a silly mistake in r130338.
...
llvm-svn: 130360
2011-04-28 00:42:03 +00:00
Justin Holewinski
a1728a7d40
PTX: support for select_cc and fixes for setcc
...
- expansion of SELECT_CC into SETCC
- force SETCC result type to i1
- custom selection for handling i1 using SETCC
Patch by Dan Bailey
llvm-svn: 130358
2011-04-28 00:19:56 +00:00
Justin Holewinski
a042c76db5
PTX: support for select
...
- selection of SELP instruction
- new selp.ll test
Patch by Dan Bailey
llvm-svn: 130357
2011-04-28 00:19:55 +00:00
Justin Holewinski
c1013e6801
PTX: mov fix and rounding correction for cvt
...
- fix typo in MOV
- correct fp rounding on CVT
- new cvt.ll test
Patch by Dan Bailey
llvm-svn: 130356
2011-04-28 00:19:54 +00:00
Justin Holewinski
405d24712b
PTX: support for fneg
...
- selection of FNEG instruction
- new fneg.ll test
Patch by Dan Bailey
llvm-svn: 130355
2011-04-28 00:19:53 +00:00
Justin Holewinski
8e5353495e
PTX: support for zext loads and trunc stores
...
- expansion of EXTLOAD and TRUNCSTORE instructions
Patch by Dan Bailey
llvm-svn: 130354
2011-04-28 00:19:52 +00:00
Justin Holewinski
bde9352742
PTX: support for bitwise operations on predicates
...
- selection of bitwise preds (AND, OR, XOR)
- new bitwise.ll test
Patch by Dan Bailey
llvm-svn: 130353
2011-04-28 00:19:51 +00:00
Justin Holewinski
520fdbc49f
PTX: patch to AsmPrinter
...
- immediate value cast as long not int
- handles initializer for constant array
Patch by Dan Bailey
llvm-svn: 130352
2011-04-28 00:19:50 +00:00
Andrew Trick
ad00466e83
Reverting r130340 in the unlikely event that it's responsible for a llvm-gcc stage2 compiler error.
...
llvm-svn: 130350
2011-04-28 00:13:59 +00:00
Eli Friedman
bcb7cd335d
fast-isel sret. We actually don't need to do anything special on x86. :) rdar://problem/9303592 .
...
llvm-svn: 130348
2011-04-27 23:58:52 +00:00
Johnny Chen
ac8aeb22e4
Add tests for A8.6.110 NOP.
...
llvm-svn: 130345
2011-04-27 23:29:21 +00:00
Rafael Espindola
36e419b524
Remove unnecessary argument.
...
llvm-svn: 130343
2011-04-27 23:17:57 +00:00
Rafael Espindola
0525497a16
Rename getPersonalityPICSymbol to getCFIPersonalitySymbol, document it, and
...
give it a bit more responsibility. Also implement it for MachO.
If hacked to use cfi, 32 bit MachO will produce
.cfi_personality 155, L___gxx_personality_v0$non_lazy_ptr
and 64 bit will produce
.cfi_presonality ___gxx_personality_v0
The general idea is that .cfi_personality gets passed the final symbol. It is
up to codegen to produce it if using indirect representation (like 32 bit
MachO), but it is up to MC to decide which relocations to create.
llvm-svn: 130341
2011-04-27 23:08:15 +00:00
Andrew Trick
652ca6a95a
Fixes PR9730: indvars: An asserting value handle still pointed to this value
...
Modified LinearFunctionTestReplace to push the condition on the dead
list instead of eagerly deleting it. This can cause unnecessary
IV rewrites, which should have no effect on codegen and will not be an
issue once we stop generating canonical IVs.
llvm-svn: 130340
2011-04-27 23:00:03 +00:00
Devang Patel
42736cb058
Simplify handling of variables with complex address (i.e. blocks variables)
...
llvm-svn: 130339
2011-04-27 22:45:24 +00:00
Eli Friedman
c5406cdb50
Make the fast-isel code for literal 0.0 a bit shorter/faster, since 0.0 is common. rdar://problem/9303592 .
...
llvm-svn: 130338
2011-04-27 22:41:55 +00:00
Eli Friedman
fc1152d772
Remove unused function.
...
llvm-svn: 130337
2011-04-27 22:21:02 +00:00
NAKAMURA Takumi
236c7ad0ca
docs/doxygen.css: Tweak style for readability.
...
A few styles are brought from http://llvm.org/test-doxygen/api/api.css
llvm-svn: 130333
2011-04-27 21:53:35 +00:00
Rafael Espindola
6bf5acb38d
Fix indentation.
...
llvm-svn: 130331
2011-04-27 21:29:52 +00:00
Kevin Enderby
dbc7221170
Fix a bug in the case that there is no add or subtract symbol and the offset
...
value is zero so it does not add a NULL expr operand.
llvm-svn: 130330
2011-04-27 21:02:27 +00:00
Dan Gohman
4e15bcfe01
Teach BasicAA about arm.neon.vld1 and vst1.
...
llvm-svn: 130327
2011-04-27 20:44:28 +00:00
Devang Patel
42f4a7ff92
Revert r130178. It turned out to be not the optimal path to emit complex location expressions.
...
llvm-svn: 130326
2011-04-27 20:29:27 +00:00
Evan Cheng
fa34d31aa4
If converter was being too cute. It look for root BBs (which don't have
...
successors) and use inverse depth first search to traverse the BBs. However
that doesn't work when the CFG has infinite loops. Simply do a linear
traversal of all BBs work just fine.
rdar://9344645
llvm-svn: 130324
2011-04-27 19:32:43 +00:00
Dan Gohman
d96c818dd2
When analyzing functions known to only access argument pointees,
...
only check arguments with pointer types. Update the documentation
of IntrReadArgMem reflect this.
While here, add support for TBAA tags on intrinsic calls.
llvm-svn: 130317
2011-04-27 18:39:03 +00:00
Andrew Trick
270f5fb525
Corrects an old, old typo in a case that doesn't seem to be reached in practice.
...
llvm-svn: 130316
2011-04-27 18:17:36 +00:00
Devang Patel
cc15dfc21a
Simplify cfg inserts a call to trap when unreachable code is detected. Assign DebugLoc to this new trap instruction.
...
llvm-svn: 130315
2011-04-27 17:59:27 +00:00
Jakob Stoklund Olesen
adb564f3cd
Also add <imp-def> operands for defined and dead super-registers when rewriting.
...
We cannot rely on the <imp-def> operands added by LiveIntervals in all cases as
demonstrated by the test case.
llvm-svn: 130313
2011-04-27 17:42:31 +00:00
Rafael Espindola
133c684456
Factor a bit of code to MCStreamer::EmitLabel. Keep track of the last
...
non private symbol. This will be use for handling
foo:
.cfi_startproc
...
On OS X where we have to create a foo.eh symbol.
llvm-svn: 130305
2011-04-27 15:21:19 +00:00
Duncan Sands
4c4f3dbea6
Stop trying to have instcombine preserve LCSSA form: this was not
...
effective in avoiding recomputation of LCSSA form; the widespread
use of instsimplify (which looks through phi nodes) means it was
not preserving LCSSA form anyway; and instcombine is no longer
scheduled in the middle of the loop passes so this doesn't matter
anymore.
llvm-svn: 130301
2011-04-27 10:55:12 +00:00
Andrew Trick
cef977b295
Test case and comment for PR9633.
...
llvm-svn: 130294
2011-04-27 05:42:17 +00:00
Nick Lewycky
0a9ef78096
Use static inline to do the right thing when built in C99 mode. Of course,
...
C89 doesn't have an inline keyword.
llvm-svn: 130279
2011-04-27 03:22:17 +00:00