summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* Rework our handling of binding a reference to a temporaryDouglas Gregor2010-05-202-19/+154
| | | | | | | | | | | | | | | | | | | | subobject. Previously, we could only properly bind to a base class subobject while extending the lifetime of the complete object (of a derived type); for non-static data member subobjects, we could memcpy (!) the result and bind to that, which is rather broken. Now, we pull apart the expression that we're binding to, to figure out which subobject we're accessing, then construct the temporary object (adding a destruction if needed) and, finally, dig out the subobject we actually meant to access. This fixes yet another instance where we were memcpy'ing rather than doing the right thing. However, note the FIXME in references.cpp: there's more work to be done for binding to subobjects, since the AST is incorrectly modeling some member accesses in base classes as lvalues when they are really rvalues. llvm-svn: 104219
* Whoops.John McCall2010-05-201-1/+1
| | | | llvm-svn: 104218
* Don't try to check jump scopes in invalid functions. FixesJohn McCall2010-05-201-1/+3
| | | | | | <rdar://problem/7995494>. llvm-svn: 104217
* Add a hybrid bottom up scheduler that reduce register usage while avoidingEvan Cheng2010-05-208-31/+162
| | | | | | | | | pipeline stall. It's useful for targets like ARM cortex-a8. NEON has a lot of long latency instructions so a strict register pressure reduction scheduler does not work well. Early experiments show this speeds up some NEON loops by over 30%. llvm-svn: 104216
* When creating a this-adjustment thunk where the return value is of C++Douglas Gregor2010-05-202-6/+54
| | | | | | | | | class type (that uses a return slot), pass the return slot to the callee directly rather than allocating new storage and trying to copy the object. This appears to have been the cause of the remaining two Boost.Interprocess failures. llvm-svn: 104215
* Fix typo in comment.Nick Lewycky2010-05-201-2/+2
| | | | llvm-svn: 104209
* Add libclang function 'clang_isFromMainFile()' (which just wraps ↵Ted Kremenek2010-05-204-0/+15
| | | | | | SourceManager::isFromMainFile()). llvm-svn: 104208
* Remove accidental commitDouglas Gregor2010-05-202-20/+2
| | | | llvm-svn: 104207
* Various small fixes for construction/destruction of Objective-C++Douglas Gregor2010-05-207-6/+75
| | | | | | | | | | instance variables: - Use isRecordType() rather than isa<RecordType>(), so that we see through typedefs in ivar types. - Mark the destructor as referenced - Perform C++ access control on the destructor llvm-svn: 104206
* Expose -fobjc-nonfragile-abi2 as a top-level clang driver option. Fixes ↵Ted Kremenek2010-05-201-0/+5
| | | | | | <rdar://problem/8007063>. llvm-svn: 104205
* Define the x86 pause instruction.Dan Gohman2010-05-203-0/+13
| | | | llvm-svn: 104204
* Fix the sfence instruction to use MRM_F8 instead of MRM7r, since itDan Gohman2010-05-202-1/+5
| | | | | | | doesn't have a register operand. Also, use I instead of PSI, for consistency with mfence and lfence. llvm-svn: 104203
* Support implicitly closing on 'this' in a block. Fixed PR7165.John McCall2010-05-209-164/+284
| | | | | | (the codegen works here, too, but that's annoying to test without execution) llvm-svn: 104202
* Fix build by actually declaring the variable.Eric Christopher2010-05-201-0/+4
| | | | llvm-svn: 104201
* Partial code for emitting thread local bss data.Eric Christopher2010-05-204-0/+10
| | | | llvm-svn: 104197
* Match "4" or "8" depending upon if it's 32- or 64-bit.Bill Wendling2010-05-201-2/+2
| | | | llvm-svn: 104196
* just add a fixme for the StructuredArgs leak, it shouldn't affectChris Lattner2010-05-201-0/+1
| | | | | | c++'03 code and variadic support "needs work". llvm-svn: 104195
* switch TemplateArgumentListBuilder to hold its flat argument list in a ↵Chris Lattner2010-05-202-23/+12
| | | | | | | | | | | | | | | | | | | | | smallvector instead of new[]'d. This greatly reduces the number of new[]'s, and guess what, they were all leaked. This adds a fixme in this hunk: unsigned NumPackArgs = NumFlatArgs - PackBeginIndex; + // FIXME: NumPackArgs shouldn't be negative here??? if (NumPackArgs) - PackArgs = &FlatArgs[PackBeginIndex]; + PackArgs = FlatArgs.data()+PackBeginIndex; where test/SemaTemplate/variadic-class-template-2.cpp is accessing the vector out of range and NumPackArgs is negative. I assume variadic template args are completely hosed. llvm-svn: 104194
* fix the TemplateArgumentList copy constructor to notChris Lattner2010-05-203-8/+17
| | | | | | | be a copy constructor (since it isn't one semantically) and fix the ownership bits it sets to be correct! llvm-svn: 104192
* Clarify TemplateArgumentList ownership over its "flat" and Chris Lattner2010-05-202-15/+25
| | | | | | | "structure" arg lists, the first step to fixing some massive memory leaks. llvm-svn: 104191
* Once more, with feeling.Eric Christopher2010-05-201-0/+1
| | | | llvm-svn: 104190
* lit: Add another place to look for bash.Daniel Dunbar2010-05-191-1/+1
| | | | llvm-svn: 104189
* tweak to (hopefully) fix darwin[89] buildbots. Thanks to Doug for the ↵Jim Grosbach2010-05-191-1/+1
| | | | | | suggested modification. llvm-svn: 104188
* Teach LSR how to cope better with unrolled loops on targets whereDan Gohman2010-05-192-3/+577
| | | | | | | | the addressing modes don't make this trivially easy. This allows it to avoid falling into the less precise heuristics in more cases. llvm-svn: 104186
* Optimize away insertelement of an undef value. This shows up inBob Wilson2010-05-191-0/+4
| | | | | | | test/Codegen/ARM/reg_sequence.ll but it doesn't affect the generated code because the coalescer cleans it up. Radar 7998853. llvm-svn: 104185
* When a conditional operator is an rvalue of class type, we need toDouglas Gregor2010-05-192-2/+45
| | | | | | | | | | create a temporary copy of both the "true" and "false" results. Fixes the Boost.Interprocess failures. Daniel did all the hard work of tracking down the issue, I get to type up the trivial fix for this horrible miscompile. llvm-svn: 104184
* fix rdar://7986634 - match instruction opcodes case insensitively.Chris Lattner2010-05-192-1/+11
| | | | llvm-svn: 104183
* Testcase for r104181.Bill Wendling2010-05-191-0/+33
| | | | llvm-svn: 104182
* More tests for ObjC++ GC support.Fariborz Jahanian2010-05-196-0/+22
| | | | llvm-svn: 104176
* Enable preserving debug information through post-RA schedulingJim Grosbach2010-05-191-1/+1
| | | | llvm-svn: 104175
* Fix the post-RA instruction scheduler to handle instructions referenced byJim Grosbach2010-05-192-21/+8
| | | | | | more than one dbg_value instruction. rdar://7759363 llvm-svn: 104174
* Code clean up.Evan Cheng2010-05-191-7/+7
| | | | llvm-svn: 104173
* Revert r104165.Devang Patel2010-05-192-5/+13
| | | | llvm-svn: 104172
* Move CXCursor_FirstDecl definition later to make the results more readable ↵Ted Kremenek2010-05-192-5/+6
| | | | | | in the debugger. llvm-svn: 104171
* Added basic source locations to Elaborated and DependentName types.Abramo Bagnara2010-05-1911-74/+297
| | | | llvm-svn: 104169
* Adds support for ObjC++'s GC attribute on declaration ofFariborz Jahanian2010-05-194-3/+148
| | | | | | object variables and functions returning such objects. llvm-svn: 104168
* Add support for partial redefs to the fast register allocator.Jakob Stoklund Olesen2010-05-191-20/+18
| | | | | | | | | | A partial redef now triggers a reload if required. Also don't add <imp-def,dead> operands for physical superregisters. Kill flags are still treated as full register kills, and <imp-use,kill> operands are added for physical superregisters as before. llvm-svn: 104167
* There is no need to maintain InsnsBeginScopeSet separately. Devang Patel2010-05-192-13/+5
| | | | llvm-svn: 104165
* A more combo tls testcase.Eric Christopher2010-05-191-0/+232
| | | | llvm-svn: 104163
* Revert r104117, "Provide a naming class for UnresolvedLookupExprs, even whenDaniel Dunbar2010-05-193-23/+12
| | | | | | | occuring on..." which breaks some Objective-C code. Working on getting a test case... llvm-svn: 104150
* Add MachineInstr::readsVirtualRegister() in preparation for proper handling ofJakob Stoklund Olesen2010-05-192-1/+31
| | | | | | | | | | | | | | | | | | partial redefines. We are going to treat a partial redefine of a virtual register as a read-modify-write: %reg1024:6 = OP Unless the register is fully clobbered: %reg1024:6 = OP, %reg1024<imp-def> MachineInstr::readsVirtualRegister() knows the difference. The first case is a read, the second isn't. llvm-svn: 104149
* Few more simple tls testcases.Eric Christopher2010-05-193-0/+279
| | | | llvm-svn: 104148
* Code refactoring: pull SchedPreference enum from TargetLowering.h to ↵Evan Cheng2010-05-1910-18/+20
| | | | | | TargetMachine.h and put it in its own namespace. llvm-svn: 104147
* TwoAddressInstructionPass doesn't really know how to merge live intervals whenJakob Stoklund Olesen2010-05-192-1/+23
| | | | | | | | lowering REG_SEQUENCE instructions. Insert copies for REG_SEQUENCE sources not killed to avoid breaking later passes. llvm-svn: 104146
* llvmc: report an error if a child process segfaults.Mikhail Glushenkov2010-05-191-1/+14
| | | | llvm-svn: 104145
* Attempt to run this test on x86 only.Eric Christopher2010-05-191-0/+1
| | | | llvm-svn: 104143
* Testcase to go with 104141.Bob Wilson2010-05-191-0/+14
| | | | llvm-svn: 104142
* When expanding a vector_shuffle, the element type may not be legal and mayBob Wilson2010-05-191-0/+2
| | | | | | | | need to be promoted. The BUILD_VECTOR and EXTRACT_VECTOR_ELT nodes generated here already allow the promoted type to be used without further changes, so just do the promotion. This fixes part of pr7167. llvm-svn: 104141
* Fill in some silly defaults to silence a GCC warningDouglas Gregor2010-05-191-2/+2
| | | | llvm-svn: 104140
* Cache the linkage of a type within its canonical type, eliminatingDouglas Gregor2010-05-194-50/+105
| | | | | | | some seriously non-linear performance with deeply nested template instantiations, as shown in PR6998. llvm-svn: 104139
OpenPOWER on IntegriCloud