Commit Graph

53869 Commits

Author SHA1 Message Date
Chris Lattner
7f61fbfcca add a note from PR5313
llvm-svn: 86146
2009-11-05 18:19:19 +00:00
Chris Lattner
d04294d7b8 Declare classes with matched tags, pointed out by a clang++ warning.
llvm-svn: 86144
2009-11-05 17:51:44 +00:00
Benjamin Kramer
a38019a3de Teach SimplifyLibCalls to fold memcmp calls with constant arguments.
llvm-svn: 86141
2009-11-05 17:44:22 +00:00
Daniel Dunbar
47718a1f47 lit: Add --param NAME=VALUE option, for test suite specific use (to communicate
arbitrary command line arguments to the test suite).

llvm-svn: 86137
2009-11-05 16:27:33 +00:00
Benjamin Kramer
f10e3edefb Do map insert+find in one step. TODO -= 2.
llvm-svn: 86133
2009-11-05 14:33:27 +00:00
Benjamin Kramer
ac39e59ede Path::createDirectoryOnDisk should ignore existing directories on win32 too.
llvm-svn: 86132
2009-11-05 14:32:40 +00:00
Douglas Gregor
eff068fbcb Make two more LLVM headers standalone
llvm-svn: 86131
2009-11-05 13:39:23 +00:00
Douglas Gregor
4f2fc40ae8 Make a few headers standalone. Plus, add a missing "template" keyword
that Clang diagnoses but GCC does not.

llvm-svn: 86130
2009-11-05 13:30:28 +00:00
Chris Lattner
412e9dc6fc merge a few crash tests into crash.ll
llvm-svn: 86119
2009-11-05 05:57:34 +00:00
Mon P Wang
0669a8df22 Reintroduce support for overloading target intrinsics
llvm-svn: 86114
2009-11-05 03:19:08 +00:00
David Goodwin
66b5886123 Replace std::map.at() with std::map[].
llvm-svn: 86102
2009-11-05 01:45:50 +00:00
David Goodwin
5ddf009b51 Break anti-dependencies using free registers in a round-robin manner to avoid introducing new anti-dependencies.
llvm-svn: 86098
2009-11-05 01:19:35 +00:00
Lang Hames
aa433cb422 Tidied some ugliness in the SlotIndex default constructor.
llvm-svn: 86097
2009-11-05 01:18:31 +00:00
Evan Cheng
52dedf7dfe Now that code placement optimization pass is run for JIT, make sure it's before pre-emit passes.
llvm-svn: 86092
2009-11-05 01:16:59 +00:00
Devang Patel
02635b0c7a Use WeakVH while storing metadata in containers.
This fixes PR5393.

llvm-svn: 86091
2009-11-05 01:13:02 +00:00
Lang Hames
f53fc0aa85 Removed an assert which was causing significant slowdowns in debug builds.
This assert was very conservative to begin with (the error condition is well
covered by tests elsewhere in the code) so we won't miss much by removing it.

llvm-svn: 86088
2009-11-05 00:52:28 +00:00
Bob Wilson
641ce17702 Add -mtriple to llc commands, attempting to fix buildbot failures.
llvm-svn: 86086
2009-11-05 00:51:31 +00:00
Evan Cheng
3a05d1d9bb Code refactoring.
llvm-svn: 86085
2009-11-05 00:51:13 +00:00
Bob Wilson
d14be3d83c Attempt again to fix buildbot failures: make expected output less specific
and compile with -mtriple to specify *-apple-darwin targets.

llvm-svn: 86081
2009-11-05 00:30:35 +00:00
David Goodwin
442fe1bbf8 Correctly add chain dependencies around calls and unknown-side-effect instructions.
llvm-svn: 86080
2009-11-05 00:16:44 +00:00
Victor Hernandez
21ec158c23 Update CreateMalloc so that its callers specify the size to allocate:
MallocInst-autoupgrade users use non-TargetData-computed allocation sizes.
Optimization uses use TargetData to compute the allocation size.

Now that malloc calls can have constant sizes, update isArrayMallocHelper() to use TargetData to determine the size of the malloced type and the size of malloced arrays.
Extend getMallocType() to support malloc calls that have non-bitcast uses.

Update OptimizeGlobalAddressOfMalloc() to optimize malloc calls that have non-bitcast uses.  The bitcast use of a malloc call has to be treated specially here because the uses of the bitcast need to be replaced and the bitcast needs to be erased (just like the malloc call) for OptimizeGlobalAddressOfMalloc() to work correctly.

Update PerformHeapAllocSRoA() to optimize malloc calls that have non-bitcast uses.  The bitcast use of the malloc is not handled specially here because ReplaceUsesOfMallocWithGlobal replaces through the bitcast use.

Update OptimizeOnceStoredGlobal() to not care about the malloc calls' bitcast use.

Update all globalopt malloc tests to not rely on autoupgraded-MallocInsts, but instead use explicit malloc calls with correct allocation sizes.

llvm-svn: 86077
2009-11-05 00:03:03 +00:00
Devang Patel
c69c29bc4b While calculating original type size for a derived type, handle type variants encoded as DIDerivedType appropriately.
This improves bitfield support.

llvm-svn: 86073
2009-11-04 23:48:00 +00:00
Jim Grosbach
ef37391033 Grammar.
llvm-svn: 86068
2009-11-04 23:20:40 +00:00
Chris Lattner
a003aee613 improve DSE when TargetData is not around, based on work by
Hans Wennborg!

llvm-svn: 86067
2009-11-04 23:20:12 +00:00
Jim Grosbach
2867641b64 Now that the memory leak from McCat/08-main has been fixed (86056), re-enable
aggressive testing of dynamic stack alignment.
Note that this is off by default, and enabled for LLCBETA nightly results.

llvm-svn: 86064
2009-11-04 23:11:07 +00:00
Jim Grosbach
c0cabc9119 If a function has no stack frame at all, dynamic realignment isn't necessary.
llvm-svn: 86057
2009-11-04 22:41:51 +00:00
Jim Grosbach
c8a01556f4 dynamic stack realignment necessitates scanning the floating point callee-
saved instructions even if no stack adjustment for those saves is needed.

llvm-svn: 86056
2009-11-04 22:41:00 +00:00
Devang Patel
799b8cc191 Fix DW_AT_data_member_location for bit-fields. It points to the location of annonymous field that covers respective field.
llvm-svn: 86054
2009-11-04 22:06:12 +00:00
Bob Wilson
25738f9e79 Add PowerPC codegen for indirect branches.
llvm-svn: 86050
2009-11-04 21:31:18 +00:00
Lang Hames
2b16464904 Handle empty/tombstone keys for LiveIndex more cleanly. Check for index sanity when constructing index list entries.
llvm-svn: 86049
2009-11-04 21:24:15 +00:00
Duncan Sands
7d20275318 A value is only assigned to errno if NumRead equals -1, so do
not reason based on errno if NumRead has a different value.

llvm-svn: 86046
2009-11-04 20:50:23 +00:00
Bob Wilson
9e30ecad4e Fix broken test.
llvm-svn: 86045
2009-11-04 20:04:11 +00:00
Eric Christopher
f20f6980cb Add some options to disable various code gen optimizations.
llvm-svn: 86044
2009-11-04 19:57:50 +00:00
Devang Patel
773993746e Array element size does not match array size but array is not a bitfield.
llvm-svn: 86043
2009-11-04 19:37:40 +00:00
Bob Wilson
ca42ca296d Add test for ARM indirectbr codegen.
llvm-svn: 86042
2009-11-04 19:25:34 +00:00
Jakob Stoklund Olesen
f775e222e0 Print out an informative comment for KILL instructions.
The KILL pseudo-instruction may survive to the asm printer pass, just like the IMPLICIT_DEF. Print the KILL as a comment instead of just leaving a blank line in the output.

With -asm-verbose=0, a blank line is printed, like IMPLICIT?DEF.

llvm-svn: 86041
2009-11-04 19:24:37 +00:00
Chris Lattner
4864198071 Fix an iterator invalidation bug that happens when a hashtable
resizes in IPSCCP.  This fixes PR5394.

llvm-svn: 86036
2009-11-04 18:57:42 +00:00
Evan Cheng
e83f2304f2 Look for llvm-gcc under /Developer/usr/bin first.
llvm-svn: 86023
2009-11-04 08:36:50 +00:00
Evan Cheng
801415706c RangeIsDefinedByCopyFromReg() should check for subreg_to_reg, insert_subreg,
and extract_subreg as a "copy" that defines a valno.
Also fixes a typo. These two issues prevent a simple subreg coalescing from
happening before.

llvm-svn: 86022
2009-11-04 08:33:14 +00:00
Chris Lattner
d8ab8fbe9f move two functions up higher in the file. Delete a useless argument
to EmitGEPOffset.  

Implement some new transforms for optimizing 
subtracts of two pointer to ints into the same vector.  This happens
for C++ iterator idioms for example, stringmap takes a const char*
that points to the start and end of a string.  Once inlined, we want
the pointer difference to turn back into a length.

This is rdar://7362831.

llvm-svn: 86021
2009-11-04 08:05:20 +00:00
Chris Lattner
aede55dc9b filecheckize this test.
llvm-svn: 86020
2009-11-04 07:57:05 +00:00
Evan Cheng
22121f4c69 The .n suffix must go after the predicate.
llvm-svn: 86019
2009-11-04 07:38:48 +00:00
Nick Lewycky
cabcab867f The magic for our current brand of .bc files is BC. For older ones it was llvc.
When was it ever "llvm"?

llvm-svn: 86009
2009-11-04 06:15:28 +00:00
Chris Lattner
dddec653f1 make IRBuilder zap "X|0" and "X&-1" when building IR, this happens
during bitfield codegen and slows down -O0 compile times by making
useless IR.  rdar://7362516

llvm-svn: 86006
2009-11-04 05:00:12 +00:00
Daniel Dunbar
b19cc0fa91 configure: Add --with-optimize-option, for setting the default value of
OPTIMIZE_OPTION.

llvm-svn: 86005
2009-11-04 04:32:50 +00:00
Evan Cheng
2c4476c9e5 Silence implicit conversion warnings.
llvm-svn: 86000
2009-11-04 03:08:57 +00:00
Lang Hames
c42888e42a Another spurious friend declaration removed.
llvm-svn: 85997
2009-11-04 01:52:40 +00:00
Lang Hames
b63bef3da7 Removed an unnecessary friend declaration and some crufty comments from IndexListEntry.
llvm-svn: 85995
2009-11-04 01:34:22 +00:00
Douglas Gregor
4cd9c97c74 Fix CMake makefiles
llvm-svn: 85994
2009-11-04 01:32:06 +00:00
Evan Cheng
8b161e8f4f Fix test.
llvm-svn: 85986
2009-11-04 00:42:33 +00:00