summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Driver: Move some argument lookup utilities into driver::ArgList.Daniel Dunbar2010-05-203-72/+92
| | | | llvm-svn: 104237
* Strip llvm.dbg.lv also.Devang Patel2010-05-201-0/+6
| | | | llvm-svn: 104236
* Copy construction of non-trivial properties must notFariborz Jahanian2010-05-202-8/+4
| | | | | | be turned into a setter call (fixes radar 8008649). llvm-svn: 104235
* Rename a variable to avoid shadowing.Dan Gohman2010-05-201-2/+3
| | | | llvm-svn: 104234
* Split DbgVariable. Eventually, variable info will be communicated through ↵Devang Patel2010-05-202-94/+111
| | | | | | frame index, or DBG_VALUE instruction, or collection of DBG_VALUE instructions. Plus each DbgVariable may not need a label. llvm-svn: 104233
* Minor code simplification.Dan Gohman2010-05-201-4/+4
| | | | llvm-svn: 104232
* Fix assembly parsing and encoding of the pushf and popf family ofDan Gohman2010-05-207-10/+60
| | | | | | instructions. llvm-svn: 104231
* Picky, pickyDouglas Gregor2010-05-201-1/+1
| | | | llvm-svn: 104230
* Fix a thinkoDouglas Gregor2010-05-201-1/+1
| | | | llvm-svn: 104229
* Set neverHasSideEffects on 64-bit pushf and popf, for consistency withDan Gohman2010-05-201-2/+2
| | | | | | 16-bit and 32-bit pushf and popf. llvm-svn: 104228
* Assert that we do not try to memcpy a non-POD class type in C++. ThisDouglas Gregor2010-05-201-1/+7
| | | | | | | | | | | | | | particular issue was the cause of the Boost.Interprocess failures, and in general will lead to horrendous, hard-to-diagnose miscompiles. The assertion itself has survives self-host and a full Boost build, so we are close to eradicating this problem in C++. Note that the assertion is *not* turned on for Objective-C++, where we still have problems with introducing memcpy's of non-POD class types. That part of the assertion will go away as soon as we fix the known issues in Objective-C++. llvm-svn: 104227
* Added TemplateArgumentListInfo to FunctionTemplateSpecializationInfo.Abramo Bagnara2010-05-204-26/+46
| | | | llvm-svn: 104226
* Move the code for deleting BaseRegs and LSRUses into helper functions,Dan Gohman2010-05-201-5/+22
| | | | | | | and fix a bug that valgrind noticed where the code would std::swap an element with itself. llvm-svn: 104225
* [rand.dist.samp.pconst] plus some bug fixes in the tests of the other ↵Howard Hinnant2010-05-2056-393/+2593
| | | | | | distributions llvm-svn: 104224
* Reduce string trashing.Benjamin Kramer2010-05-201-2/+2
| | | | llvm-svn: 104223
* Fix my inability to spell 'continue' and a case where message sends ↵David Chisnall2010-05-201-4/+7
| | | | | | returning non-pointer-sized things were generating invalid IR inside @try blocks. llvm-svn: 104222
* Renamed misleading getSourceRange -> getLocalSourceRange and ↵Abramo Bagnara2010-05-2016-47/+47
| | | | | | getFullSourceRange -> getSourceRange for TypeLoc. llvm-svn: 104220
* 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
OpenPOWER on IntegriCloud