summaryrefslogtreecommitdiffstats
path: root/llvm
Commit message (Collapse)AuthorAgeFilesLines
...
* The final piece needed for storing arbitrary precisionDuncan Sands2008-01-221-29/+90
| | | | | | | | integers. Handle truncstore of a legal type to an unusual number of bits. Most of this code is not reachable unless the new legalize infrastructure is turned on. llvm-svn: 46249
* Enable the fix I just checked in, silly me.Nick Lewycky2008-01-221-1/+0
| | | | llvm-svn: 46247
* update this test to pass with duncan's change.Chris Lattner2008-01-221-1/+1
| | | | llvm-svn: 46246
* One too many )'s breaks 'make clean' with certain versions of make.Chris Lattner2008-01-221-1/+1
| | | | | | | | This fixes PR1927 This should be pulled into llvm 2.2. llvm-svn: 46245
* Multiply can be evaluated in a different type, so long as the target type hasNick Lewycky2008-01-222-0/+21
| | | | | | a smaller bitwidth. llvm-svn: 46244
* Trivial patch to fix two warnings, please pull into llvm 2.2Chris Lattner2008-01-221-0/+3
| | | | llvm-svn: 46243
* Fixed buggy caching of the hash value of an ImutAVLTree node.Ted Kremenek2008-01-211-3/+6
| | | | llvm-svn: 46229
* Moved method call within a conditional branch because its effects willTed Kremenek2008-01-211-1/+1
| | | | | | be ignored on the false branch. llvm-svn: 46228
* Adjusted ImutAVLTree::ComputeHash to compute a hash value that is based on aTed Kremenek2008-01-211-3/+16
| | | | | | clearer sequence of hashing compositions. llvm-svn: 46227
* Added "clear" method to FoldingSetNodeID to allow a FoldingSetNodeID objectTed Kremenek2008-01-211-0/+4
| | | | | | to be reused to compute multiple object profiles. llvm-svn: 46226
* Replaced (FoldingSet) profiling of ImutAVLTree with a hashing based scheme. TheTed Kremenek2008-01-211-6/+23
| | | | | | | | | | | | | problem was that we previously hashed based on the pointers of the left and right children, but this is bogus: we can easily have different trees that represent the same set. Now we use a hashing based scheme that compares the *contents* of the trees, but not without having to do a full scan of a tree. The only caveat is that with hashing is that we may have collisions, which result in two different trees being falsely labeled as equivalent. If this becomes a problem, we can add extra data to the profile to hopefully resolve most collisions. llvm-svn: 46224
* Provide iterator access to ListInit contentsAnton Korobeynikov2008-01-211-0/+11
| | | | llvm-svn: 46223
* Fix the failures in the PPC JIT by marking relocation entries forChris Lattner2008-01-211-1/+1
| | | | | | | | | | | | | external symbols (e.g. 'fmod') as needing a stub. This regression was introduced by Evan's jit patch here: http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20071231/056749.html With this fixed, the two ExecutionEngine failures are passing on ppc, and the ppc jit works on freebench and olden. This should be pulled into the 2.2 release branch. llvm-svn: 46222
* New test.Devang Patel2008-01-211-0/+5
| | | | llvm-svn: 46220
* Clarify a deviation from the original algorithm.Owen Anderson2008-01-211-1/+4
| | | | llvm-svn: 46218
* Improve a few comments.Owen Anderson2008-01-211-1/+6
| | | | llvm-svn: 46217
* It turns out that in C++ it is legal to declare functionsDuncan Sands2008-01-211-6/+1
| | | | | | | | | | | | | that return an opaque type by value, as long as you don't call it or provide a body (you can take the address of it). So it is wrong to insist that sret parameters not be an opaque*. And I guess it is really up to codegen to complain if someone tries to call such a function. I'm also removing the analogous check from byval parameters, since I don't see why we shouldn't allow them as long as no-one tries to call the function or give it a body. llvm-svn: 46216
* New test.Devang Patel2008-01-211-0/+7
| | | | llvm-svn: 46209
* Check that sret is only used on pointers to typesDuncan Sands2008-01-211-2/+2
| | | | | | with a size, like byval. llvm-svn: 46207
* Be consistent with other attribute methods, andDuncan Sands2008-01-211-1/+7
| | | | | | check the callee also if it is known. llvm-svn: 46206
* Move DAG-changing code out of #ifndef NDEBUG.Dale Johannesen2008-01-211-1/+3
| | | | llvm-svn: 46204
* Make sure the caller doesn't use freed memory.Duncan Sands2008-01-201-1/+3
| | | | | | Fixes PR1935. llvm-svn: 46203
* Honour ByVal parameter attribute for name decorationAnton Korobeynikov2008-01-201-3/+12
| | | | llvm-svn: 46200
* Remove Darwin'ismAnton Korobeynikov2008-01-201-4/+1
| | | | llvm-svn: 46199
* Enable PIC codegen on x86-64/linuxAnton Korobeynikov2008-01-201-1/+1
| | | | llvm-svn: 46198
* Initializing an unsigned with ~0UL causes the compilerDuncan Sands2008-01-201-9/+9
| | | | | | to complain on x86-64 (gcc 4.1). Use ~0U instead. llvm-svn: 46197
* Do not generate a FP_ROUND of f64 to f64.Dale Johannesen2008-01-201-3/+4
| | | | llvm-svn: 46195
* Changed argument name for 'Profile' method to potentially fix a name conflictTed Kremenek2008-01-191-1/+1
| | | | | | reported in pr1929 (http://llvm.org/PR1929). llvm-svn: 46193
* Need to handle any 'nest' parameter before integerDuncan Sands2008-01-191-8/+8
| | | | | | | | | parameters, since otherwise it won't be passed in the right register. With this change trampolines work on x86-64 (thanks to Luke Guest for providing access to an x86-64 box). llvm-svn: 46192
* Modified ImmutableSet/ImmutableMap to use FoldingSet profiling usingTed Kremenek2008-01-191-2/+2
| | | | | | FoldingSetTrait instead of directly calling a 'Profile' method. llvm-svn: 46190
* Added FoldingSet style 'profiling' support for APSInt.Ted Kremenek2008-01-192-0/+27
| | | | llvm-svn: 46189
* Added FoldingSet style 'profiling' support for APInt.Ted Kremenek2008-01-192-1/+18
| | | | llvm-svn: 46188
* Made 'FoldingSetNodeID' a proper class instead of a nested class inTed Kremenek2008-01-192-70/+66
| | | | | | | | | | 'FoldingSetNodeImpl' (previously 'FoldingSetNodeID' was a typedef of 'FoldingSetNodeImpl::NodeID'). Why? Clients can now easily forward declare 'FoldingSetNodeID' without having to include FoldingSet.h. llvm-svn: 46187
* Made 'profiling' of objects in a FoldingSet trait-based using FoldingSetTraitTed Kremenek2008-01-191-1/+53
| | | | | | | | | | | | | | | instead of always assuming that the stored objects had a method called 'Profile'. The default behavior is to dispatch to a 'Profile' method (as before), but via template specialization this behavior can now be overridden by clients. Added templated class 'FoldingSetNodeWrapper', a generic wrapper class that allows one to insert objects into a FoldingSet that do not directly inherit from FoldingSetNode. This is useful for inserting objects that do not always need to pay the overhead of inheriting from FoldingSetNode, or were designed with that behavior in mind. llvm-svn: 46186
* Fix makefiles to enable Apply style debug build.Evan Cheng2008-01-182-15/+15
| | | | llvm-svn: 46180
* Implement flt_rounds for PowerPC.Dale Johannesen2008-01-182-0/+83
| | | | llvm-svn: 46174
* remove extraneous &&'s from tests, as Scott is apparently not going to.Chris Lattner2008-01-1820-160/+160
| | | | llvm-svn: 46173
* Test is correct again for the moment.Dale Johannesen2008-01-181-3/+0
| | | | llvm-svn: 46172
* remove extraneous &'s.Chris Lattner2008-01-181-2/+2
| | | | llvm-svn: 46171
* don't form an std::string with a null pointer, it aborts.Chris Lattner2008-01-181-1/+1
| | | | llvm-svn: 46166
* get symbolic information for ppc ldbl nodes.Chris Lattner2008-01-181-0/+5
| | | | llvm-svn: 46165
* remove magic numbers.Chris Lattner2008-01-181-13/+14
| | | | llvm-svn: 46162
* Fix a latent bug exposed by my truncstore patch. We compiled stfiwx-2.ll to:Chris Lattner2008-01-182-0/+12
| | | | | | | | | | | | | | | | | | | | | | _test: fctiwz f0, f1 stfiwx f0, 0, r4 blr instead of: _test: fctiwz f0, f1 stfd f0, -8(r1) nop nop lwz r2, -4(r1) stb r2, 0(r4) blr The former is not correct (stores 4 bytes, not 1). llvm-svn: 46161
* make a method publicChris Lattner2008-01-181-7/+7
| | | | llvm-svn: 46159
* Reverted implementation of ImmutableMap::find() to return a TreeTy* instead ofTed Kremenek2008-01-181-3/+5
| | | | | | | | | | | an iterator, since the implementation returned an iterator that pointed to a different node! Renamed this implementation to SlimFind() so that users do not expect it to return an iterator (it is a more efficient implementation than returning an iterator if the user just wants to find the value of a key). Added a FIXME to implement ImmutableMap::find() that returns an iterator. llvm-svn: 46150
* Revert the part of 45849 that treated weak globalsDale Johannesen2008-01-171-3/+2
| | | | | | | | as weak globals rather than commons. While not wrong, this change tickled a latent bug in Darwin's strip, so revert it for now as a workaround. llvm-svn: 46147
* Revert the part of 45848 that treated weak globalsDale Johannesen2008-01-172-4/+4
| | | | | | | | as weak globals rather than commons. While not wrong, this change tickled a latent bug in Darwin's strip, so revert it for now as a workaround. llvm-svn: 46144
* Forward progress: crtbegin.c now compiles successfully!Scott Michel2008-01-177-160/+360
| | | | | | | | | | | | | Fixed CellSPU's A-form (local store) address mode, so that all globals, externals, constant pool and jump table symbols are now wrapped within a SPUISD::AFormAddr pseudo-instruction. This now identifies all local store memory addresses, although it requires a bit of legerdemain during instruction selection to properly select loads to and stores from local store, properly generating "LQA" instructions. Also added mul_ops.ll test harness for exercising integer multiplication. llvm-svn: 46142
* This commit changes:Chris Lattner2008-01-1717-85/+97
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1. Legalize now always promotes truncstore of i1 to i8. 2. Remove patterns and gunk related to truncstore i1 from targets. 3. Rename the StoreXAction stuff to TruncStoreAction in TLI. 4. Make the TLI TruncStoreAction table a 2d table to handle from/to conversions. 5. Mark a wide variety of invalid truncstores as such in various targets, e.g. X86 currently doesn't support truncstore of any of its integer types. 6. Add legalize support for truncstores with invalid value input types. 7. Add a dag combine transform to turn store(truncate) into truncstore when safe. The later allows us to compile CodeGen/X86/storetrunc-fp.ll to: _foo: fldt 20(%esp) fldt 4(%esp) faddp %st(1) movl 36(%esp), %eax fstps (%eax) ret instead of: _foo: subl $4, %esp fldt 24(%esp) fldt 8(%esp) faddp %st(1) fstps (%esp) movl 40(%esp), %eax movss (%esp), %xmm0 movss %xmm0, (%eax) addl $4, %esp ret llvm-svn: 46140
* new testcase.Chris Lattner2008-01-171-0/+8
| | | | llvm-svn: 46139
OpenPOWER on IntegriCloud