Chris Lattner
3ba293564a
fold immediates into stores in simple cases, this produces diffs like
...
this:
- movl $0, %eax
- movl %eax, _yy_n_chars
+ movl $0, _yy_n_chars
llvm-svn: 57555
2008-10-15 05:30:52 +00:00
Ted Kremenek
bb7818b666
Enhance dead store checker to not flag preincrements to dead variables where the preincrement is a subexpression, e.g. foo(++x); This can cause false negatives, but will remove a whole class of false positives.
...
llvm-svn: 57554
2008-10-15 05:23:41 +00:00
Chris Lattner
e388725aef
fold compare of null pointer into compare with 0.
...
llvm-svn: 57553
2008-10-15 05:18:04 +00:00
Chris Lattner
a0f9d4972f
Some minor cleanups:
...
1. Compute action in X86SelectSelect based on MVT instead of type.
2. Use TLI.getValueType(..) instead of MVT::getVT(..) because the former
handles pointers and the later doesn't.
3. Don't pass TLI into isTypeLegal, since it already has access to it as
an ivar.
#2 gives fast isel some minor new functionality: handling load/stores of
pointers.
llvm-svn: 57552
2008-10-15 05:07:36 +00:00
Chris Lattner
74e012839d
Use switch on VT instead of Type* comparisons.
...
llvm-svn: 57551
2008-10-15 04:32:45 +00:00
Chris Lattner
dc1c380f23
Use X86FastEmitCompare for FCMP_OEQ and FCMP_UNE: it doesn't
...
change the generated code, but makes the code simpler.
llvm-svn: 57550
2008-10-15 04:29:23 +00:00
Chris Lattner
d46b9510b6
refactor compare emission out into a new X86FastEmitCompare method,
...
which makes it easy to share the compare/imm folding logic with 'setcc'.
This shaves a bunch of instructions off the common select case, which
happens a lot in llvm-gcc.
llvm-svn: 57549
2008-10-15 04:26:38 +00:00
Chris Lattner
88f4754f8f
Fold immediates into compares when possible, producing "cmp $4, %eax" instead of
...
loading 4 into a register and then doing the compare.
llvm-svn: 57548
2008-10-15 04:13:29 +00:00
Chris Lattner
47bef25c01
more minor refactoring of X86SelectBranch, no functionality change.
...
llvm-svn: 57547
2008-10-15 04:02:26 +00:00
Chris Lattner
0ce717ac6b
factor buildmi calls in X86SelectBranch
...
llvm-svn: 57546
2008-10-15 03:58:05 +00:00
Chris Lattner
f32ce221e4
factor some more BuildMI's in X86SelectCmp
...
llvm-svn: 57545
2008-10-15 03:52:54 +00:00
Chris Lattner
a3596db462
factor some BuildMI calls, no functionality change.
...
llvm-svn: 57544
2008-10-15 03:47:17 +00:00
Dan Gohman
4459c4250d
Adjust whitespace in debug messages to be more consistent
...
with other debug messages.
llvm-svn: 57543
2008-10-15 02:57:38 +00:00
Evan Cheng
3b0f5e4d61
- Add target lowering hooks that specify which setcc conditions are illegal,
...
i.e. conditions that cannot be checked with a single instruction. For example,
SETONE and SETUEQ on x86.
- Teach legalizer to implement *illegal* setcc as a and / or of a number of
legal setcc nodes. For now, only implement FP conditions. e.g. SETONE is
implemented as SETO & SETNE, SETUEQ is SETUO | SETEQ.
- Move x86 target over.
llvm-svn: 57542
2008-10-15 02:05:31 +00:00
Argyrios Kyrtzidis
88e1b97f16
Simplify handling of struct/union/class tags.
...
Instead of using two sets of Decl kinds (Struct/Union/Class and CXXStruct/CXXUnion/CXXClass), use one 'Record' and one 'CXXRecord' Decl kind and make tag kind a property of TagDecl.
Cleans up the code a bit and better reflects that Decl class structure.
llvm-svn: 57541
2008-10-15 00:42:39 +00:00
Daniel Dunbar
267c4fe1b5
Test commit.
...
llvm-svn: 57540
2008-10-15 00:26:06 +00:00
Dan Gohman
e7ced74558
FastISel support for exception-handling constructs.
...
- Move the EH landing-pad code and adjust it so that it works
with FastISel as well as with SDISel.
- Add FastISel support for @llvm.eh.exception and
@llvm.eh.selector.
llvm-svn: 57539
2008-10-14 23:54:11 +00:00
Daniel Dunbar
0f8155ae4e
Prevent assert when using '"' in names (via hexadecimal).
...
Update LangRef to mention \xx quoting in names.
llvm-svn: 57538
2008-10-14 23:51:43 +00:00
Daniel Dunbar
389529a7df
Change getLLVMName to use raw_ostream & PrintLLVMName.
...
- Avoids duplicated quotification code.
- Remove QuoteNameIfNeeded.
- No functionality change.
llvm-svn: 57537
2008-10-14 23:28:09 +00:00
Daniel Dunbar
6cba0ebe6b
Add llvm::hexdigit to StringExtras (number -> hexadecimal char)
...
llvm-svn: 57536
2008-10-14 23:26:20 +00:00
Daniel Dunbar
c11b40f6e1
Add some ReleaseNotes on clang codegen.
...
llvm-svn: 57535
2008-10-14 23:25:09 +00:00
Daniel Dunbar
22ba9eb9f3
Remove Stacker.html from Xcode project.
...
llvm-svn: 57534
2008-10-14 23:23:59 +00:00
Steve Naroff
8afa98916a
Downgrade incompatibilities with objc qualified types (e.g. id <P>) to warnings.
...
Note: One day, we should consider moving the actual diags to ObjCQualifiedIdTypesAreCompatible(), since it has more information on the actual problem. GCC currently emits slightly more instructive errors for some cases involving protocols. I added a FIXME to the code.
llvm-svn: 57529
2008-10-14 22:18:38 +00:00
Dale Johannesen
28106756af
Accept -march=i586, because gcc does (a synonym
...
for pentium). Fixes
gcc.target/i386/20000720-1.c
gcc.target/i386/pr26826.c
llvm-svn: 57528
2008-10-14 22:06:33 +00:00
Evan Cheng
07d53b1d33
Rename LoadX to LoadExt.
...
llvm-svn: 57526
2008-10-14 21:26:46 +00:00
Jim Grosbach
b7c01f5f48
Update ARM Insn encoding to get endian-ness to match the documentation (31-0 left to right)
...
llvm-svn: 57524
2008-10-14 20:36:24 +00:00
Devang Patel
81537206e1
Remove dead code.
...
llvm-svn: 57522
2008-10-14 20:30:54 +00:00
Dan Gohman
9c4b7d5c4f
Fix command-line option printing to print two spaces where needed,
...
instead of requiring all "short description" strings to begin with
two spaces. This makes these strings less mysterious, and it fixes
some cases where short description strings mistakenly did not
begin with two spaces.
llvm-svn: 57521
2008-10-14 20:25:08 +00:00
Daniel Dunbar
c064d4edc4
Fix const qualifiers on ProtocolQualifierListTy.
...
llvm-svn: 57520
2008-10-14 20:22:44 +00:00
Devang Patel
dbf83835fc
Document attributes changes.
...
llvm-svn: 57518
2008-10-14 20:03:43 +00:00
Nicolas Geoffray
e5ec932baf
Add VMKit notes.
...
llvm-svn: 57517
2008-10-14 19:23:04 +00:00
Evan Cheng
d885f6e139
Combine (fcmp cc0 x, y) | (fcmp cc1 x, y) into a single fcmp when possible.
...
llvm-svn: 57515
2008-10-14 18:44:08 +00:00
Argyrios Kyrtzidis
ab3633b626
Revert my previous change, got stupidly confused with my local changes.
...
llvm-svn: 57514
2008-10-14 18:28:48 +00:00
Evan Cheng
ce70752b11
- Somehow I forgot about one / une.
...
- Renumber fcmp predicates to match their icmp counterparts.
- Try swapping operands to expose more optimization opportunities.
llvm-svn: 57513
2008-10-14 18:13:38 +00:00
Argyrios Kyrtzidis
23d5426c67
Fix a call to Sema::LookupDecl that had incorrect parameters.
...
llvm-svn: 57511
2008-10-14 17:28:09 +00:00
Evan Cheng
c36231b95e
Fix indentation.
...
llvm-svn: 57508
2008-10-14 17:15:39 +00:00
Evan Cheng
67786cce66
Optimize anding of two fcmp into a single fcmp if the operands are the same. e.g. uno && ueq -> ueq
...
ord && olt -> olt
ord && ueq -> oeq
llvm-svn: 57507
2008-10-14 17:15:11 +00:00
Dan Gohman
0ccb5b4435
Mention a few methods in ConstantSDNode that were renamed.
...
llvm-svn: 57505
2008-10-14 17:06:44 +00:00
Dan Gohman
2ed2753007
HTML syntax fixes.
...
llvm-svn: 57503
2008-10-14 17:00:38 +00:00
Daniel Dunbar
cbdf409c2c
Add serialization support in several missing places.
...
llvm-svn: 57502
2008-10-14 16:57:09 +00:00
Daniel Dunbar
d5420e3bef
Move Type::EmitImpl into header, add FIXME to make abstract.
...
llvm-svn: 57501
2008-10-14 16:55:17 +00:00
Dan Gohman
ef9462f67c
Fix missing end tags and invalid HTML entity syntax.
...
llvm-svn: 57500
2008-10-14 16:51:45 +00:00
Daniel Dunbar
eee51d125f
Fix typo in testcase.
...
llvm-svn: 57499
2008-10-14 16:46:03 +00:00
Dan Gohman
93bf60d4cb
Add a missing close-tag.
...
llvm-svn: 57497
2008-10-14 16:32:04 +00:00
Dan Gohman
ad888911c0
Fix a few close tags.
...
llvm-svn: 57496
2008-10-14 16:23:02 +00:00
Dan Gohman
f4a169f201
Fix a typo.
...
llvm-svn: 57495
2008-10-14 16:13:59 +00:00
Dan Gohman
765edbc4e4
Add a brief mention of the new free-list management code.
...
llvm-svn: 57490
2008-10-14 15:14:55 +00:00
Gabor Greif
20564a05b9
minor corrections, improved formatting
...
llvm-svn: 57486
2008-10-14 11:31:14 +00:00
Gabor Greif
355f81cd16
typo and formatting tweaks
...
llvm-svn: 57485
2008-10-14 11:00:32 +00:00
Nuno Lopes
a67f06b9c7
little optimization: reuse getPointerToGlobalIfAvailable(CGV) value in emitGlobals()
...
llvm-svn: 57484
2008-10-14 10:04:52 +00:00