Scott Michel
9e3e4a9219
CellSPU:
...
- Rename fcmp.ll test to fcmp32.ll, start adding new double tests to fcmp64.ll
- Fix select_bits.ll test
- Capitulate to the DAGCombiner and move i64 constant loads to instruction
selection (SPUISelDAGtoDAG.cpp).
<rant>DAGCombiner will insert all kinds of 64-bit optimizations after
operation legalization occurs and now we have to do most of the work that
instruction selection should be doing twice (once to determine if v2i64
build_vector can be handled by SelectCode(), which then runs all of the
predicates a second time to select the necessary instructions.) But,
CellSPU is a good citizen.</rant>
llvm-svn: 62990
2009-01-26 03:31:40 +00:00
Nate Begeman
624801e87e
Fix a typo
...
llvm-svn: 62989
2009-01-26 03:15:54 +00:00
Nate Begeman
a2550a8e96
De-identifying per sabre review
...
llvm-svn: 62988
2009-01-26 03:15:31 +00:00
Nick Lewycky
5c8fc9d549
Build libLTO on any platform so long as PIC is enabled.
...
llvm-svn: 62987
2009-01-26 03:04:57 +00:00
Nate Begeman
7ea4e861ca
Add some documentation for address-space-based access to the segment registers.
...
llvm-svn: 62986
2009-01-26 02:54:45 +00:00
Chris Lattner
9449991c4f
Handle single-entry phi nodes gracefully in condprop.
...
llvm-svn: 62985
2009-01-26 02:18:20 +00:00
Chris Lattner
7b6647c178
Fix PR3408 by making a non-obvious assumption very obvious, and
...
handling the flaw inherent in that assumption. :)
llvm-svn: 62984
2009-01-26 02:11:30 +00:00
Chris Lattner
57cb472b56
More cleanups and simplifications, no functionality change.
...
llvm-svn: 62983
2009-01-26 01:57:01 +00:00
Chris Lattner
d67aaa6560
tidy asserts
...
llvm-svn: 62982
2009-01-26 01:38:24 +00:00
Eli Friedman
16c88df1a0
PR3269: create an empty InitListExpr as a child for the
...
CompoundLiteralExpr so that there aren't any null pointers in the AST.
llvm-svn: 62981
2009-01-26 01:33:06 +00:00
Nate Begeman
5eca265519
Map address space 256 to gs; similar mappings could be supported for the
...
other x86 segments. address space 0 is stack/default, 1-255 are reserved for
client use.
llvm-svn: 62980
2009-01-26 01:24:32 +00:00
Nate Begeman
8a51d8c8f7
Support pattern matching various x86 sse shifts.
...
llvm-svn: 62979
2009-01-26 00:52:55 +00:00
Chris Lattner
4fa23625ab
Check in the long promised SourceLocation rewrite. This lays the
...
ground work for implementing #line, and fixes the "out of macro ID's"
problem.
There is nothing particularly tricky about the code, other than the
very performance sensitive SourceManager::getFileID() method.
llvm-svn: 62978
2009-01-26 00:43:02 +00:00
Sebastian Redl
cf8e1fa58e
Update C++ status table with new member pointer conversion capabilities.
...
llvm-svn: 62977
2009-01-26 00:11:25 +00:00
Chris Lattner
80b283c1cd
silence a warning when assertions are disabled.
...
llvm-svn: 62976
2009-01-25 23:08:00 +00:00
Chris Lattner
3138e81621
improve ASTContext::getDeclAlign comment, as suggested by Eli.
...
llvm-svn: 62975
2009-01-25 23:06:38 +00:00
Chris Lattner
4f765fb198
use simpler method
...
llvm-svn: 62974
2009-01-25 22:02:19 +00:00
Torok Edwin
692ed0f67d
should have removed the + when manually applying a patch!
...
llvm-svn: 62973
2009-01-25 20:29:34 +00:00
Torok Edwin
97be2f5840
revert this patch for now, because Codegen does still want to generate SSE code,
...
for example in the case of va-args. XFAIL associated tests.
llvm-svn: 62972
2009-01-25 20:21:24 +00:00
Sebastian Redl
72b597d6b6
Implement implicit conversions for pointers-to-member.
...
llvm-svn: 62971
2009-01-25 19:43:20 +00:00
Torok Edwin
3cc1940003
testcase for llvm-gcc part of PR3402.
...
llvm-svn: 62969
2009-01-25 18:00:06 +00:00
Torok Edwin
a23c73bbdc
If user explicitly asks not to use SSE, don't force it. This fixes LLVM part of PR3402.
...
llvm-svn: 62967
2009-01-25 17:58:56 +00:00
Dan Gohman
f1d38be265
Eliminate the loop that searches through each of the operands
...
of each use in the SelectionDAG ReplaceAllUses* functions. Thanks
to Chris for spotting this opportunity.
Also, factor out code from all 5 of the ReplaceAllUses* functions
into AddNonLeafNodeToCSEMaps, which is now renamed
AddModifiedNodeToCSEMaps to more accurately reflect its purpose.
llvm-svn: 62964
2009-01-25 16:29:12 +00:00
Dan Gohman
3a113ec468
Whitespace tidiments.
...
llvm-svn: 62963
2009-01-25 16:21:38 +00:00
Dan Gohman
e7b0dde2ee
Move the N->use_empty() assert from DeleteNode to
...
DeleteNodeNotInCSEMaps, since DeleteNode just calls
DeleteNodeNotInCSEMaps.
llvm-svn: 62962
2009-01-25 16:20:37 +00:00
Dan Gohman
e3f2278de1
Reality-check the FAQ entry for "Can I use LLVM to convert C++ to C?"
...
llvm-svn: 62961
2009-01-25 16:04:50 +00:00
Sebastian Redl
8b2540439f
Introduce an explicit case for member pointers in CodeGenTypes. However, it simply asserts.
...
llvm-svn: 62960
2009-01-25 13:35:30 +00:00
Sebastian Redl
a865ade730
Fix compile error from r62953.
...
llvm-svn: 62959
2009-01-25 13:34:47 +00:00
Nick Lewycky
21add8f983
Start generating arbitrary precision integer SCEVs. This removes the temporary
...
code that rounded up and capped the size.
llvm-svn: 62958
2009-01-25 08:16:27 +00:00
Nick Lewycky
cb7a10ab63
Actually run the test in this directory.
...
llvm-svn: 62957
2009-01-25 08:05:07 +00:00
Nick Lewycky
5647c5d1a4
The function that does nothing but call malloc is noalias return.
...
llvm-svn: 62956
2009-01-25 07:59:57 +00:00
Evan Cheng
1c7c019229
Private linkage support for PPC / Darwin.
...
llvm-svn: 62955
2009-01-25 06:32:01 +00:00
Evan Cheng
abda665f5f
Teach 2addr pass to be do more commuting. If both uses of a two-address instruction are killed, but the first operand has a use before and after the def, commute if the second operand does not suffer from the same issue.
...
%reg1028<def> = EXTRACT_SUBREG %reg1027<kill>, 1
%reg1029<def> = MOV8rr %reg1028
%reg1029<def> = SHR8ri %reg1029, 7, %EFLAGS<imp-def,dead>
insert => %reg1030<def> = MOV8rr %reg1028
%reg1030<def> = ADD8rr %reg1028<kill>, %reg1029<kill>, %EFLAGS<imp-def,dead>
In this case, it might not be possible to coalesce the second MOV8rr
instruction if the first one is coalesced. So it would be profitable to
commute it:
%reg1028<def> = EXTRACT_SUBREG %reg1027<kill>, 1
%reg1029<def> = MOV8rr %reg1028
%reg1029<def> = SHR8ri %reg1029, 7, %EFLAGS<imp-def,dead>
insert => %reg1030<def> = MOV8rr %reg1029
%reg1030<def> = ADD8rr %reg1029<kill>, %reg1028<kill>, %EFLAGS<imp-def,dead>
llvm-svn: 62954
2009-01-25 03:53:59 +00:00
Eli Friedman
8bad1c5903
One more case for Expr::isConstantInitializer; I think this covers
...
everything that we aren't intending to implement in Expr::Evaluate.
llvm-svn: 62953
2009-01-25 03:27:40 +00:00
Eli Friedman
384da27131
Enhancements to Expr::isConstantInitializer to deal with a few
...
cases it couldn't deal with before.
llvm-svn: 62952
2009-01-25 03:12:18 +00:00
Eli Friedman
7139af42ce
Rename Expr::isConstantExpr to Expr::isConstantInitializer; this more
...
accurately states what the function is trying to do and how it is
different from Expr::isEvaluatable. Also get rid of a parameter that is both
unused and inaccurate.
llvm-svn: 62951
2009-01-25 02:32:41 +00:00
Eli Friedman
cf2b7ba4a7
Get rid of some code that should be unnecessary.
...
llvm-svn: 62950
2009-01-25 02:10:46 +00:00
Eli Friedman
c69d454d5a
Make the constant folder aware of
...
__builtin___CFStringMakeConstantString. (We get into trouble in
GenerateStaticBlockVarDecl if the constant folder isn't accurate.)
llvm-svn: 62949
2009-01-25 01:54:01 +00:00
Eli Friedman
529a99bcf4
Fix the address of a label to be properly considered and emitted as a
...
constant.
llvm-svn: 62948
2009-01-25 01:21:06 +00:00
Eli Friedman
8b7c52658b
Fix for PR2100: merge types for variables.
...
llvm-svn: 62947
2009-01-24 23:49:55 +00:00
Eli Friedman
588395702f
Correct test; sorry for any inconvenience.
...
llvm-svn: 62946
2009-01-24 23:44:26 +00:00
Fariborz Jahanian
a887e63434
Compute instaceStart/instanceSize fields of the class_ro_t meta-data
...
for objc2's non-fragile abi.
llvm-svn: 62945
2009-01-24 23:43:01 +00:00
Sebastian Redl
c6d52f5dfb
Make tentative parsing of pointer-to-member decls work, and fix other stuff pointed out by Doug.
...
llvm-svn: 62944
2009-01-24 23:29:36 +00:00
Eli Friedman
52cc016f21
PR3062: statement expressions should be illegal at file scope. I don't
...
think this has any significant effects at the moment, but it could
matter if we start constant-folding statement expressions like gcc does.
llvm-svn: 62943
2009-01-24 23:09:00 +00:00
Eli Friedman
8549e5dcc8
Fix for PR2910: implement CodeGen for non-constant offsetof.
...
Note that there are still other issues in this area; see PR3396.
llvm-svn: 62942
2009-01-24 22:38:55 +00:00
Eli Friedman
2aa38fea35
Refactor sizeof handling to use constant folding logic for constant
...
sizeof expressions.
llvm-svn: 62941
2009-01-24 22:19:05 +00:00
Nate Begeman
b09b0242ca
Fix an indent and a typo.
...
llvm-svn: 62940
2009-01-24 22:12:48 +00:00
Chris Lattner
6806131c6b
add initial support for the gcc "alignof(decl) is the alignment of the decl
...
not the type" semantics. This can definitely be improved, but is better than
what we had.
llvm-svn: 62939
2009-01-24 21:53:27 +00:00
Dale Johannesen
2b3389a626
Revert previous change; even this mild and clearly
...
more accurate change loses more than it gains on
benchmarks.
llvm-svn: 62938
2009-01-24 21:49:34 +00:00
Sebastian Redl
887ce84b2b
Undo accidental disabling of smart pointers.
...
llvm-svn: 62937
2009-01-24 21:36:33 +00:00