summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* Two bug fixes, we weren't updating the thunk index when creating the vtable ↵Anders Carlsson2010-03-292-0/+9
| | | | | | initializer and we weren't storing the secondary virtual pointer indices. llvm-svn: 99786
* Make default arguments to getFunctionNoProtoType an all or nothing option ↵Rafael Espindola2010-03-281-2/+5
| | | | | | (as they already are in practise). llvm-svn: 99785
* Drop default arguments no one is using.Rafael Espindola2010-03-281-1/+1
| | | | llvm-svn: 99783
* Revert 99772.Devang Patel2010-03-286-46/+50
| | | | llvm-svn: 99778
* Reapply r99775 with a fix for a silly bug - we were setting the vtable ↵Anders Carlsson2010-03-282-51/+64
| | | | | | pointer for all bases, even those without a vtable pointer :) llvm-svn: 99777
* Looks like I broke self-host again :(.Anders Carlsson2010-03-282-59/+50
| | | | llvm-svn: 99776
* More improvements to setting the vtable pointer. We now no longer set the ↵Anders Carlsson2010-03-282-50/+59
| | | | | | vtable pointer for non-virtual primary bases. We also do a pre-order traversal of the class hierarchy; this is necessary in order to get the right vbase offset offsets in base ctors/dtors. llvm-svn: 99775
* add a statistic for the # times isel has to backtrack.Chris Lattner2010-03-281-1/+3
| | | | llvm-svn: 99774
* Factor vtable pointer setting code out into a separate function.Anders Carlsson2010-03-282-22/+45
| | | | llvm-svn: 99773
* Refactoring. Push DILocation processing in to DwarfDebug from AsmPrinter.Devang Patel2010-03-286-50/+46
| | | | llvm-svn: 99772
* zap an extra line that Eli noticed!Chris Lattner2010-03-281-1/+0
| | | | llvm-svn: 99770
* Properly quote the quotes :) during cmdline construction on Windows.Anton Korobeynikov2010-03-281-6/+28
| | | | | | | | | Otherwise, e.g. in the invocation like clang -DFOO=\"bar\" FOO macro got the bar value, not "bar". Patch by Alexander Esilevich! llvm-svn: 99763
* Fix use-of-uninitialized value when RWX memory can't be allocated (PR6701).Torok Edwin2010-03-281-1/+1
| | | | | | | | | | | | | SELinux doesn't allow 'execmem', returning MAP_FAILED and 'Permission denied' for mmap or RWX memory. In this case AllocateRWX was returning a MemoryBlock with uninitialized fields, which sometimes caused crashes. This patch initializes MemoryBlock fields to 0, so that the RWX-failure check works. It doesn't fix the SELinux 'execmem' issues though (the JIT will not work when SELinux is in enforcing mode). llvm-svn: 99762
* improve type checking of SDNode operand count. This rejects all casesChris Lattner2010-03-282-8/+10
| | | | | | | where an incorrect number of operands is provided to an sdnode instead of just a few cases. llvm-svn: 99761
* fix a type contradition: XCoreISD::RETSP has one argument, not zero.Chris Lattner2010-03-281-1/+1
| | | | llvm-svn: 99760
* finally remove the immAllOnesV_bc/immAllZerosV_bc patternsChris Lattner2010-03-283-9/+1
| | | | | | | | | | and those derived from them. These are obnoxious because they were written as: PatLeaf<(bitconvert). Not having an argument was foiling adding better type checking for operand count matching up with what was required (in this case, bitconvert always requires an operand!) llvm-svn: 99759
* remove a pattern with no testcase that doesn't appear to be Chris Lattner2010-03-281-2/+0
| | | | | | matchable: it seems like it would always constant fold. llvm-svn: 99758
* fix integer negates to use the proper type for the zero vectors,Chris Lattner2010-03-281-11/+14
| | | | | | | this also depends on the new "bitconvert dropping" behavior just added to tblgen. llvm-svn: 99757
* teach tblgen to allow patterns like (add (i32 (bitconvert (i32 GPR))), 4), Chris Lattner2010-03-282-4/+44
| | | | | | | | | transforming it into (add (i32 GPR), 4). This allows us to write type generic multi patterns and have tblgen automatically drop the bitconvert in the case when the types align. This allows us to fold an extra load in the changed testcase. llvm-svn: 99756
* fix a typo, bitconvert from node to itself isn't valid.Chris Lattner2010-03-281-1/+1
| | | | llvm-svn: 99755
* fix vnot matching to explicitly specify the type of theChris Lattner2010-03-281-10/+16
| | | | | | | | | input to be v8i8 or v16i8, which buildvectors get canonicalized to. This allows the patterns that were previously using a bare 'vnot' to match, before they couldn't. llvm-svn: 99754
* fix up vnot matching, eliminating a dead pattern, correcting a couple ofChris Lattner2010-03-281-6/+11
| | | | | | | patterns that would never match because of bitcast, and eliminating use of vnot_conv. llvm-svn: 99753
* add some nounwindsChris Lattner2010-03-281-12/+12
| | | | llvm-svn: 99752
* this takes an insane amount of time to run, disable it for now (PR6727)Chris Lattner2010-03-281-1/+3
| | | | llvm-svn: 99751
* stop using vnot_convChris Lattner2010-03-281-3/+8
| | | | llvm-svn: 99750
* revert r99743, this is saying that the repmovs instructinos have anChris Lattner2010-03-281-2/+4
| | | | | | *input* of other type, which is the VT. llvm-svn: 99749
* remove a bunch of dead patterns.Chris Lattner2010-03-281-13/+0
| | | | llvm-svn: 99748
* validate that input sdnodes don't exist in an output pattern.Chris Lattner2010-03-281-8/+23
| | | | llvm-svn: 99747
* eliminate a bunch of code duplication in ParseTreePatternChris Lattner2010-03-282-100/+68
| | | | | | by rotating it. llvm-svn: 99746
* add some node definitions.Chris Lattner2010-03-281-0/+8
| | | | llvm-svn: 99745
* SDTCisVT<0, isVoid> is not valid, reject it.Chris Lattner2010-03-281-0/+3
| | | | llvm-svn: 99744
* claiming to return other is pointless.Chris Lattner2010-03-281-4/+2
| | | | llvm-svn: 99743
* comply with the wishes of a fixme.Chris Lattner2010-03-281-3/+0
| | | | llvm-svn: 99742
* now that (parallel) is gone and a variety of bugs in targetsChris Lattner2010-03-281-8/+4
| | | | | | are cleaned up, we can remove an old fixme. llvm-svn: 99741
* add an optimized form of OPC_EmitMergeInputChains for the 1, 0 and Chris Lattner2010-03-283-0/+38
| | | | | | | 1, 1 cases which are by-far the most frequent. This shrinks the X86 isel table from 77014 -> 74657 bytes. llvm-svn: 99740
* don't add nodes to the now-dead nodes list multiple times, thisChris Lattner2010-03-281-2/+3
| | | | | | | can cause a crash on crazy situations in msp430 when morph-node-to is disabled. llvm-svn: 99739
* Improve systemz to model cmp and ucmp nodes as returningChris Lattner2010-03-282-43/+33
| | | | | | their flags correctly. llvm-svn: 99738
* the FPCmp node returns an i32.Chris Lattner2010-03-281-6/+8
| | | | llvm-svn: 99737
* fix some modelling problems exposed by a patch I'm working on. bsr/bsf/ptestChris Lattner2010-03-283-26/+21
| | | | | | nodes all have an EFLAGS result when made by isel lowering. llvm-svn: 99736
* don't add flag nodes with chain results to the NowDeadNodesChris Lattner2010-03-281-2/+3
| | | | | | list multiple times when MorphNodeTo can't be applied. llvm-svn: 99735
* After performing template argument deduction for a function template,Douglas Gregor2010-03-289-137/+410
| | | | | | | | | | | | | | | | | | | | check deduced non-type template arguments and template template arguments against the template parameters for which they were deduced, performing conversions as appropriate so that deduced template arguments get the same treatment as explicitly-specified template arguments. This is the bulk of PR6723. Also keep track of whether deduction of a non-type template argument came from an array bound (vs. anywhere else). With this information, we enforce C++ [temp.deduct.type]p17, which requires exact type matches when deduction deduces a non-type template argument from something that is not an array bound. Finally, when in a SFINAE context, translate the "zero sized arrays are an extension" extension diagnostic into a hard error (for better standard conformance), which was a minor part of PR6723. llvm-svn: 99734
* Oops, r98447 dropped the reference to ForwardType in the wrong place inJeffrey Yasskin2010-03-281-5/+5
| | | | | | | | Type::destroy(), so it got skipped for FunctionTypes, StructTypes, and UnionTypes. This fixes the resulting leaks in test/Feature/opaquetypes.ll and test/Integer/opaquetypes_bt.ll. llvm-svn: 99732
* Checker: random include cleanup.Benjamin Kramer2010-03-2746-115/+79
| | | | llvm-svn: 99731
* Further improvement to point to categoryFariborz Jahanian2010-03-273-7/+14
| | | | | | whose protocolls methods needs implementation. llvm-svn: 99730
* Give thunks the same linkage as their original methods.Anders Carlsson2010-03-272-12/+26
| | | | llvm-svn: 99729
* fix a long standing fixme, which required fixing a bunch of otherChris Lattner2010-03-271-25/+27
| | | | | | | | | | | | | issues to get here. We now trim the result type list of the CompleteMatch or MorphNodeTo operation to be the same size as the thing we're matching. this means that if you match (add GPR, GPR) with an instruction that produces a normal result and a flag that we now trim the result in tblgen instead of having to do it dynamically. This exposed a bunch of inconsistencies in result counting that happened to be getting lucky since the days of the old isel. llvm-svn: 99728
* fix CodeGenTarget::getRegisterVTs to not return the Chris Lattner2010-03-272-2/+7
| | | | | | | | same vt multiple times for a register. For example, ECX is in 5 different i32 reg classes, just return 1 i32 instead of 5. llvm-svn: 99727
* hoist some funky logic into CodeGenInstructionChris Lattner2010-03-274-17/+38
| | | | | | | | | from two places in CodeGenDAGPatterns.cpp, and use it in DAGISelMatcherGen.cpp instead of using an incorrect predicate that happened to get lucky on our current targets. llvm-svn: 99726
* continue pushing tblgen's support for nodes with multipleChris Lattner2010-03-272-40/+44
| | | | | | | | results forward. We can now handle an instruction that produces one implicit def and one result instead of one or the other when not at the root of the pattern. llvm-svn: 99725
* Improve diagnostics on incomplete implementationFariborz Jahanian2010-03-2713-85/+71
| | | | | | | | of objc classes; including which methods need be implemented and where they come from. WIP. llvm-svn: 99724
OpenPOWER on IntegriCloud