aboutsummaryrefslogtreecommitdiff
path: root/lib
AgeCommit message (Collapse)Author
2009-01-11Use the spiffy new getAlignmentFromAttrs function.Nick Lewycky
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62039 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-11CheckForPhysRegDependency should not return copy cost. It's not used. No ↵Evan Cheng
functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62036 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-1080 col violation.Evan Cheng
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62024 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-10Reduce initial small vector sizes.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62023 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-10Fix thinko. Create parent scope if parent descriptor is *not* null.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62022 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-09Duplicated node may produce a non-physical register def.Evan Cheng
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62015 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-09Minor debug output tweak.Evan Cheng
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62005 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-09Request DwarfWriter. This will be used to handle dbg_* intrinsics.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61999 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-09fix typo Duncan noticed.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61997 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-09Fix PR3304Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61995 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-09Removed trailing whitespace from Makefiles.Misha Brukman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61991 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-09Implement rdar://6480391, extending of equality icmp's to avoid a truncation.Chris Lattner
I noticed this in the code compiled for a routine using std::map, which produced this code: %25 = tail call i32 @memcmp(i8* %24, i8* %23, i32 6) nounwind readonly %.lobit.i = lshr i32 %25, 31 ; <i32> [#uses=1] %tmp.i = trunc i32 %.lobit.i to i8 ; <i8> [#uses=1] %toBool = icmp eq i8 %tmp.i, 0 ; <i1> [#uses=1] br i1 %toBool, label %bb3, label %bb4 which compiled to: call L_memcmp$stub shrl $31, %eax testb %al, %al jne LBB1_11 ## with this change, we compile it to: call L_memcmp$stub testl %eax, %eax js LBB1_11 This triggers all the time in common code, with patters like this: %169 = and i32 %ply, 1 ; <i32> [#uses=1] %170 = trunc i32 %169 to i8 ; <i8> [#uses=1] %toBool = icmp ne i8 %170, 0 ; <i1> [#uses=1] %7 = lshr i32 %6, 24 ; <i32> [#uses=1] %9 = trunc i32 %7 to i8 ; <i8> [#uses=1] %10 = icmp ne i8 %9, 0 ; <i1> [#uses=1] etc git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61985 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-09Remove some old code that looks like a remanant from signed-types days.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61984 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-09Fix PR3298, a crash in Jump Threading. Apparently even Chris Lattner
jump threading can have bugs, who knew? ;-) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61983 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-09Fix part 3/2 of PR3290, making instcombine zap (gep(bitcast)) when possible.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61980 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-09move some code, check to see if the input to the GEP is a bitcastChris Lattner
(which is constant time and cheap) before checking hasAllZeroIndices. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61976 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-09Add load-folding table entries for MOVDQA.Dan Gohman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61972 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-09Whitespace and other minor adjustments to make SSE instructions haveDan Gohman
the same formatting as their corresponding SSE2 instructions, for consistency. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61971 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-09Adjustments to last patch based on review.Dale Johannesen
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61969 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-0861949 accidentally introduced an escaped newline. Fix this by makingDan Gohman
the comment a little more verbose. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61959 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-08Convert DwarfWriter into a pass.Devang Patel
Now Users request DwarfWriter through getAnalysisUsage() instead of creating an instance of DwarfWriter object directly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61955 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-08Delete unnecessary parens around return values.Dan Gohman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61950 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-08Fix the comment for lltok::backslash.Dan Gohman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61949 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-08Fix the path to llvm/Assembly/Parser.h in a comment.Dan Gohman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61948 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-08Do not inline functions with (dynamic) alloca intoDale Johannesen
functions that don't already have a (dynamic) alloca. Dynamic allocas cause inefficient codegen and we shouldn't propagate this (behavior follows gcc). Two existing tests assumed such inlining would be done; they are hacked by adding an alloca in the caller, preserving the point of the tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61946 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-08Use mayBeOverridden here, in anticipation of theDuncan Sands
day when more linkage types will be handled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61944 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-08ValueTracker can't assume that an alloca with no specified alignment Chris Lattner
will get its preferred alignment. It has to be careful and cautiously assume it will just get the ABI alignment. This prevents instcombine from rounding up the alignment of a load/store without adjusting the alignment of the alloca. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61934 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-08one more crash from PR3281, we now diagnose:Chris Lattner
llvm-as: t.ll:2:39: function may not return opaque type %"bwmoyl" = tail call coldcc opaque @g() ^ git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61933 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-08Add DebugInfo based APIs to record source line info.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61928 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-08* Moved author attribution to CREDITS.TXTMisha Brukman
* Removed trailing whitespace git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61927 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-08* Alphabetized #includesMisha Brukman
* Removed trailing whitespace git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61926 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-08add some more crazy strlen and memcpy stuff I noticed in spec.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61918 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-08add some notes about strlen craziness in eon.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61917 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-08This implements the second half of the fix for PR3290, handlingChris Lattner
loads from allocas that cover the entire aggregate. This handles some memcpy/byval cases that are produced by llvm-gcc. This triggers a few times in kc++ (with std::pair<std::_Rb_tree_const_iterator <kc::impl_abstract_phylum*>,bool>) and once in 176.gcc (with %struct..0anon). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61915 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-08Add APIs to record regions and variables.Devang Patel
Again, shamelessly copied from MMI. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61912 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-08Add APIs to manage scope using DebugInfo interface.Devang Patel
This is a shameless copy of similar APIs from MachineModuleInfo. The copy from MMI will be deleted in near future. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61908 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-08Fix failure messages in Verifier::PerformTypeCheck. The argument numbersBob Wilson
passed in to this function changed to support multiple return values, leading to some incorrect argument numbers in the failure messages. With this change, the ArgNo values used for return values and parameters are disjoint, and the new IntrinsicParam function translates those ArgNo values to strings that can be used in the messages. This also fixes a few places where PerformTypeCheck did not return false following calls to CheckFailed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61903 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-08CMake: removed lib/VMCore/DebugInfoBuilder.cpp.Oscar Fuentes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61900 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-07Assert that VectorType::getTruncatedElementVectorType is not used withBob Wilson
odd bit-width vector elements. Add a check in the verifier for this also. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61899 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-07remove DebugInfoBuilder, it has been subsumed by Analysis/DebugInfo.hChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61898 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-07Fix off-by-one error in traversing an array; this fixes a test.Misha Brukman
The error was reported by gcc-4.3.0 during compilation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61896 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-07revert to functionally equivalent formulationGabor Greif
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61895 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-07use the obvious gettersGabor Greif
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61893 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-07Remove redundant 'else's. No functionality change.Dan Gohman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61891 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-07Whitespace - correct formatting.Duncan Sands
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61879 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-07Remove alloca tracking from nocapture analysis. Not onlyDuncan Sands
was it not very helpful, it was also wrong! The problem is shown in the testcase: the alloca might be passed to a nocapture callee which dereferences it and returns the original pointer. But because it was a nocapture call we think we don't need to track its uses, but we do. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61876 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-07Reorder these.Duncan Sands
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61873 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-07Use a switch rather than a sequence of "isa" tests.Duncan Sands
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61872 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-07The verifier checks that the aliasee is not null.Duncan Sands
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61870 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-07Implement the first half of PR3290: if there is a store of an Chris Lattner
integer to a (transitive) bitcast the alloca and if that integer has the full size of the alloca, then it clobbers the whole thing. Handle this by extracting pieces out of the stored integer and filing them away in the SROA'd elements. This triggers fairly frequently because the CFE uses integers to pass small structs by value and the inliner exposes these. For example, in kimwitu++, I see a bunch of these with i64 stores to "%struct.std::pair<std::_Rb_tree_const_iterator<kc::impl_abstract_phylum*>,bool>" In 176.gcc I see a few i32 stores to "%struct..0anon". In the testcase, this is a difference between compiling test1 to: _test1: subl $12, %esp movl 20(%esp), %eax movl %eax, 4(%esp) movl 16(%esp), %eax movl %eax, (%esp) movl (%esp), %eax addl 4(%esp), %eax addl $12, %esp ret vs: _test1: movl 8(%esp), %eax addl 4(%esp), %eax ret The second half of this will be to handle loads of the same form. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61853 91177308-0d34-0410-b5e6-96231b3b80d8