Commit Graph

81327 Commits

Author SHA1 Message Date
Chris Lattner a22de1fa9f add comments, don't require inlined-at to be specified.
llvm-svn: 100092
2010-04-01 06:29:56 +00:00
Evan Cheng 43cd9e3845 Fix sdisel memcpy, memset, memmove lowering:
1. Makes it possible to lower with floating point loads and stores.
2. Avoid unaligned loads / stores unless it's fast.
3. Fix some memcpy lowering logic bug related to when to optimize a
   load from constant string into a constant.
4. Adjust x86 memcpy lowering threshold to make it more sane.
5. Fix x86 target hook so it uses vector and floating point memory
   ops more effectively.
rdar://7774704

llvm-svn: 100090
2010-04-01 06:04:33 +00:00
Evan Cheng 738b0f9ec7 Nehalem unaligned memory access is fast.
llvm-svn: 100089
2010-04-01 05:58:17 +00:00
Chris Lattner c0f5ce32d5 Switch the representation of the location in instruction from
being a TrackingVH<MDNode> to a NewDebugLoc, shrinking 
sizeof(Instruction) a lot, and providing clients the ability
to deal with locations in terms of NewDebugLoc instead of
having to deal with Metadata.  This is still fully compatible
with all clients that *do* use MDNodes for everything of
course.

No functionality change.

llvm-svn: 100088
2010-04-01 05:23:13 +00:00
Chris Lattner e04505e717 include header.
llvm-svn: 100087
2010-04-01 05:20:21 +00:00
Chris Lattner 8eff0157b2 rewrite handling of forward ref'd instruction metadata
to used deferred resolution instead of creating a temporary
node + rauw.  There is no reason to create the temporary
mdnode, then do rauw, then destroy it.

llvm-svn: 100086
2010-04-01 05:14:45 +00:00
Chris Lattner 6159249891 change this from using '!dbg' to using '!dbgx'. The
MD used here isn't valid for !dbg.

llvm-svn: 100085
2010-04-01 05:13:10 +00:00
Chris Lattner cf25a89bb7 fix a bug in DebugRecVH::deleted/allUsesReplacedWith. If an
entry in the Scope+InlinedAt drops to a non-canonical form,
we need to reset the idx member of both VH's to 0.

llvm-svn: 100084
2010-04-01 05:12:07 +00:00
Chris Lattner dba4346e91 no really, we don't need to copy strings around in the accessor.
llvm-svn: 100083
2010-04-01 04:53:22 +00:00
Chris Lattner ef0ec99665 eliminate a temporary smallvector
llvm-svn: 100082
2010-04-01 04:51:13 +00:00
Chris Lattner 56e4b4a913 add a method to decode a DILocation into a NewDebugLoc.
llvm-svn: 100081
2010-04-01 03:55:42 +00:00
Zhongxing Xu 8cea7f6f70 Improve C++ constructor handling.
llvm-svn: 100080
2010-04-01 03:47:27 +00:00
Eric Christopher 2fbd4050e9 Fix typo.
llvm-svn: 100079
2010-04-01 03:07:20 +00:00
Eric Christopher 9002ac5d93 Add aeskeygenassist intrinsic and rename all of the aes intrinsics to
aes instead of sse4.2.  Add a brief todo for a subtarget flag and rework
the aeskeygenassist instruction to more closely match the docs.

llvm-svn: 100078
2010-04-01 03:05:45 +00:00
Eric Christopher 5464e5ae00 First start at wmmintrin.h file with Intel AES-NI instructions.
llvm-svn: 100077
2010-04-01 03:03:35 +00:00
Erick Tryzelaar d5499aaf41 There are no known O'Caml problems at the moment.
llvm-svn: 100076
2010-04-01 01:53:24 +00:00
Chris Lattner 92e77a73f5 update cmakefile.
llvm-svn: 100074
2010-04-01 01:02:19 +00:00
Chris Lattner 8cb2aeb7c7 Add a new "NewDebugLoc" class which will eventually replace DebugLoc,
and will replace the 'DbgInfo' member in Instruction.

The benefit of NewDebugLoc is that it is compact (8 bytes vs 12/24 
bytes for the DbgInfo member in Instruction on a 32/64 bit system),
it means that we will end up not having to allocate MDNodes to 
represent the "DILocations" in common cases of -O0 -g, and it is
much more efficient to get things out of than the MDNode.

llvm-svn: 100072
2010-04-01 00:37:44 +00:00
Ted Kremenek c3e1f2f9ba Fix a bug (PR 6699) in RegionStore::RemoveDeadBindings() where
array values with a non-zero offset would get prematurely pruned from the store.

llvm-svn: 100067
2010-04-01 00:15:55 +00:00
Jim Grosbach 7c90d22f4c vml[as] are slow on 1136jf-s also.
llvm-svn: 100066
2010-04-01 00:13:43 +00:00
Bill Wendling 95643404a8 Reapply r100056. It doesn't look like it's the one that's causing a failure.
llvm-svn: 100065
2010-04-01 00:00:43 +00:00
Mikhail Glushenkov 5506864ed4 Pass -m32/-m64 to assembler.
llvm-svn: 100064
2010-03-31 23:51:55 +00:00
Bill Wendling fa9810de3b Revert r100056. It was causing a failure on MSVC.
llvm-svn: 100062
2010-03-31 23:26:26 +00:00
Douglas Gregor f5af3584ca Improve diagnostics when an elaborated-type-specifer containing a
nested-name-specifier (e.g., "class T::foo") fails to find a tag
member in the scope nominated by the
nested-name-specifier. Previously, we gave a bland

  error: 'Nested' does not name a tag member in the specified scope

which didn't actually say where we were looking, which was rather
horrible when the nested-name-specifier was instantiated. Now, we give
something a bit better:

  error: no class named 'Nested' in 'NoDepBase<T>'

llvm-svn: 100060
2010-03-31 23:17:41 +00:00
Stuart Hastings 7f89a0ac88 Reverting 100048; it broke two Frontend debug info tests.
llvm-svn: 100058
2010-03-31 23:08:46 +00:00
Bill Wendling 506b304706 Rewrite CorrectExtraCFGEdges() to make it more understandable.
* Set the "DestA" and "DestB" according to how they're understood by the
  method. I.e., if one or both of them should point to the "fall through" block,
  then point to the fall through block.

* Improve the loop that removes superfluous edges to be more understandable.

llvm-svn: 100056
2010-03-31 22:54:38 +00:00
Daniel Dunbar 2843b5ed7f clang/Darwin: Don't include enable_execute_stack in libcc_kext.a.
llvm-svn: 100055
2010-03-31 22:36:07 +00:00
Douglas Gregor e677dafce1 Change the representation of dependent elaborated-type-specifiers
(such as "class T::foo") from an ElaboratedType of a TypenameType to a
DependentNameType, which more accurately models the underlying
concept.

Improve template instantiation for DependentNameType nodes that
represent nested-name-specifiers, by performing tag name lookup and
checking the resulting tag appropriately. Fixes PR5681.

There is still much testing and cleanup to do in this area.

llvm-svn: 100054
2010-03-31 22:19:08 +00:00
Bob Wilson b9fb48bff7 Add a redundant PHI testcase for SSAUpdater to go with svn r100047.
llvm-svn: 100050
2010-03-31 21:38:43 +00:00
Stuart Hastings f3e5afd6d3 Debug info can now properly represent functions inside classes inside other functions. Partial fix for Radar 7424645.
llvm-svn: 100048
2010-03-31 21:10:54 +00:00
Bob Wilson ac229124f4 Rewrite part of the SSAUpdater to be more careful about inserting redundant
PHIs.  The previous algorithm was unable to reliably detect when existing
PHIs in a cycle can be reused.  I'm still working on reducing a testcase.
Radar 7711900.

llvm-svn: 100047
2010-03-31 20:51:00 +00:00
Nick Kledzik 516f36d133 <rdar://problem/7733536> Move libcompiler_rt over to a dylib target for Libsystem
llvm-svn: 100045
2010-03-31 20:38:57 +00:00
Dale Johannesen b67a6e6620 Fix a nasty dangling-pointer heisenbug that could
generate wrong code pretty much anywhere AFAICT.
A case that hits the bug reproducibly is impossible,
but the situation was like this:
Addr = ...
Store -> Addr
Addr2 = GEP , 0, 0
Store -> Addr2
Handling the first store, the code changed replaced Addr
with a sunkaddr and deleted Addr, but not its table
entry.  Code in OptimizedBlock replaced Addr2 with a
bitcast; if that happened to reuse the memory of Addr,
the old table entry was erroneously found when handling
the second store.

llvm-svn: 100044
2010-03-31 20:37:15 +00:00
Gabor Greif 6882a5eea1 testcase for r99914, provided by baldrick!
llvm-svn: 100043
2010-03-31 20:37:13 +00:00
Chris Lattner 503a0ef6f4 reduce indentation, minor cleanups.
llvm-svn: 100042
2010-03-31 20:32:51 +00:00
Fariborz Jahanian 083712fbb7 Issue better syntax error when objc's messaging
ares are not separated by ':' (radar 7030268).

llvm-svn: 100040
2010-03-31 20:22:35 +00:00
Douglas Gregor 0208535fda Extend DependentNameType with a keyword enum that specifies whether
this was parsed as a typename-specifier, elaborated-type-specifier
(including the kind), or just a dependent qualified type name.

llvm-svn: 100039
2010-03-31 20:19:30 +00:00
Benjamin Kramer 96956ed0ff Reduce string trashing.
llvm-svn: 100038
2010-03-31 20:15:45 +00:00
Jakob Stoklund Olesen 58ca0a649c Use spaces, not tabs
llvm-svn: 100037
2010-03-31 20:05:12 +00:00
Nick Kledzik b3d3ec7091 <rdar://problem/7813254> check enable_execute_stack implementation
llvm-svn: 100036
2010-03-31 19:52:01 +00:00
Benjamin Kramer 74729ae094 DwarfDebug: Allocate DIEValues with a BumpPtrAllocator. Most of them are
POD-like anyway, so we don't even care about calling their d'tors (DIEBlock
being the exception).

~6% less mallocs and ~1% compile time improvement on clang -O0 -g oggenc.c

llvm-svn: 100035
2010-03-31 19:34:01 +00:00
Daniel Dunbar 3f183ae5cb Add a FIXME.
llvm-svn: 100034
2010-03-31 19:14:05 +00:00
Bill Wendling d749aefbd5 Comment the changes for r98218 and friends inside the source code.
llvm-svn: 100033
2010-03-31 18:48:58 +00:00
Daniel Dunbar 6e0dbca6c4 lit: Make sure to close any files we open as part of redirection.
PR6753.

llvm-svn: 100032
2010-03-31 18:48:43 +00:00
Bill Wendling 866f5764a7 Comment the changes for r98218 and friends inside the source code.
llvm-svn: 100031
2010-03-31 18:47:10 +00:00
Ted Kremenek b43e06fa56 For reverse data flow analyses, enqueue the blocks in reverse order.
This more likely matches with the ideal order the blocks should be visited.
This shaves another 1% off the -fsyntax-only time for compare.c (403.gcc).

llvm-svn: 100030
2010-03-31 18:45:04 +00:00
Chandler Carruth b32b344c8f Re-bind non-dependent CXXTemporaryObjectExpr nodes as temporaries when
instantiating a template, which ensures the destructor is called. This fixes
PR6671.

llvm-svn: 100029
2010-03-31 18:34:58 +00:00
Fariborz Jahanian c1fb862fda Patch implements gcc's -Wno-protocol option to suppress warning
on unimplemented methods in protocols adopted by a class.
(radar 7056600).

llvm-svn: 100028
2010-03-31 18:23:33 +00:00
Douglas Gregor d7d70e4788 Remove the AST statistics tracking I added yesterday; it didn't pan out.
llvm-svn: 100027
2010-03-31 18:21:31 +00:00
Ted Kremenek 8a47a38b3f Tweak DataFlowSolver's worklist data structure to have an ordered worklist
and a DenseSet for caching instead of using a single SmallPtrSet.
This makes the behavior of the DataFlowSolver more deterministic, and
reduces the -fsyntax-only time on compare.c (403.gcc) by 1%.

llvm-svn: 100026
2010-03-31 18:16:59 +00:00