summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [sanitizer] Introduce VReport and VPrintf macros and use them in sanitizer code.Sergey Matveev2013-12-0517-138/+100
| | | | | | Instead of "if (common_flags()->verbosity) Report(...)" we now have macros. llvm-svn: 196497
* [mips] Add some comments related to the optimization performed in ↵Matheus Almeida2013-12-051-8/+21
| | | | | | | | | | performSELECTCombine. The structure of the code was slightly modified so that the next patch is easier to read/review. No functional changes. llvm-svn: 196496
* [tsan] fix the old tsan Makefile to build the asm files with includesKostya Serebryany2013-12-051-0/+2
| | | | llvm-svn: 196495
* [mips][msa] Fix issue with immediate fields of LD/ST instructionsMatheus Almeida2013-12-056-31/+175
| | | | | | | | | not being correctly encoded/decoded. In more detail, immediate fields of LD/ST instructions should be divided/multiplied by the size of the data format before encoding and after decoding, respectively. llvm-svn: 196494
* ARM: fix yet another stack-folding bugTim Northover2013-12-052-6/+30
| | | | | | | | | | | We were trying to fold the stack adjustment into the wrong instruction in the situation where the entire basic-block was epilogue code. Really, it can only ever be valid to do the folding precisely where the "add sp, ..." would be placed so there's no need for a separate iterator to track that. Should fix PR18136. llvm-svn: 196493
* Revert r196490 and fix include paths in makefile-based buildAlexey Samsonov2013-12-053-5/+7
| | | | llvm-svn: 196492
* [asan] revert files which I accidentally commited in r196490Kostya Serebryany2013-12-053-20/+21
| | | | llvm-svn: 196491
* [tsan] fix the include path that is broken in configure/make build but works ↵Kostya Serebryany2013-12-054-22/+21
| | | | | | in cmake build (PR18144). This is a quick fix. Will need to fix the configure/make build properly llvm-svn: 196490
* [sanitizer] fix the ppc32 build (patch by Jakub Jelinek) Kostya Serebryany2013-12-051-6/+18
| | | | llvm-svn: 196489
* PR17983: Fix crasher bug in C++1y mode when performing a non-global arrayRichard Smith2013-12-053-11/+34
| | | | | | | delete on a class which has no array cookie and has no class-specific operator new. llvm-svn: 196488
* [libclang] Record ranges skipped by the preprocessor and expose them with ↵Argyrios Kyrtzidis2013-12-057-1/+124
| | | | | | | | libclang. Patch by Erik Verbruggen! llvm-svn: 196487
* [c-index-test] Enhance perform_test_reparse_source() to allow remapping a fileArgyrios Kyrtzidis2013-12-051-12/+77
| | | | | | | | at a particular reparsing iteration. Passing '-remap-file-1=from:to' will remap the files in the second iteration. llvm-svn: 196486
* [c-index-test] For the '-remap-file=' option use ':' instead of ';' for ↵Argyrios Kyrtzidis2013-12-059-15/+15
| | | | | | | | separator. lldb does not like semicolon as part of an option. llvm-svn: 196485
* clang-format-diff.py: pass through errors to stderr, not stdoutAlp Toker2013-12-051-5/+2
| | | | | | | Also use write() for unified diff output to avoid further processing by the print function (e.g. trailing newline). llvm-svn: 196484
* Fix the build failure of lldb wrt clang recent change. Patch by Todd FialaSylvestre Ledru2013-12-051-1/+0
| | | | llvm-svn: 196483
* Update C++ status from 'SVN' to 'Clang 3.4' in preparation for release. LeaveRichard Smith2013-12-051-11/+11
| | | | | | boxes yellow until we release, though. llvm-svn: 196482
* Implement DR482: namespace members can be redeclared with a qualified nameRichard Smith2013-12-0510-47/+96
| | | | | | | | | | within their namespace, and such a redeclaration isn't required to be a definition any more. Update DR status page to say Clang 3.4 instead of SVN and add new Clang 3.5 category (but keep Clang 3.4 yellow for now). llvm-svn: 196481
* [sanitizer] support toolchains that don't understand CFI directivesKostya Serebryany2013-12-053-126/+168
| | | | | | | | | | | | | | Summary: Support toolchains that don't understand CFI directives. Reviewers: dvyukov Reviewed By: dvyukov CC: llvm-commits Differential Revision: http://llvm-reviews.chandlerc.com/D2336 llvm-svn: 196480
* DwarfDebug/DwarfUnit: Push abbreviation structures down into DwarfUnits to ↵David Blaikie2013-12-052-49/+21
| | | | | | reduce duplication llvm-svn: 196479
* Fix comment typo in r196476Alp Toker2013-12-051-1/+1
| | | | llvm-svn: 196477
* [objc] If an interface has no initializer marked as designated and ↵Argyrios Kyrtzidis2013-12-053-16/+93
| | | | | | | | | | | introduces at least one new initializer, don't assume that it inherits the designated initializers from the super class. If the assumption was wrong because a new initializer was a designated one that was not marked as such, we will emit misleading warnings for subclasses of the interface. llvm-svn: 196476
* Remove makeArrayRef() calls.Rui Ueyama2013-12-055-33/+23
| | | | | | | Because ArrayRef has implicit conversion from C arrays, we don't need makeArrayRef. llvm-svn: 196475
* Re-apply r196439, with sed patterns modified to be more DOS-path friendly.Lang Hames2013-12-051-2/+4
| | | | llvm-svn: 196474
* Use isIntrinsic() instead of checking for "llvm."Matt Arsenault2013-12-051-1/+1
| | | | llvm-svn: 196473
* Remove the isImplicitlyPrivate argument of getNameWithPrefix.Rafael Espindola2013-12-058-13/+19
| | | | | | | | | | | | getSymbolWithGlobalValueBase use is to create a name of a new symbol based on the name of an existing GV. Assert that and then remove the last call to pass true to isImplicitlyPrivate. This gives the mangler API a 1:1 mapping from GV to names, which is what we need to drop the mangler dependency on the target (and use an extended datalayout instead). llvm-svn: 196472
* Correct word hyphenationsAlp Toker2013-12-0568-92/+92
| | | | | | | This patch tries to avoid unrelated changes other than fixing a few hyphen-related ambiguities and contractions in nearby lines. llvm-svn: 196471
* Hide the stub created for MO_ExternalSymbol too.Rafael Espindola2013-12-053-11/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | given declare void @llvm.memset.p0i8.i32(i8* nocapture, i8, i32, i32, i1) declare void @foo() define void @bar() { call void @foo() call void @llvm.memset.p0i8.i32(i8* null, i8 0, i32 188, i32 1, i1 false) ret void } We used to produce L_foo$stub: .indirect_symbol _foo .ascii "\364\364\364\364\364" _memset$stub: .indirect_symbol _memset .ascii "\364\364\364\364\364" We not produce a private stub for memset too. Stubs are not needed with recent linkers, but we still produce them for darwin8. Thanks to David Fang for confirming that gcc used to do this too. llvm-svn: 196468
* R600/SI: Add comments for number of used registers.Matt Arsenault2013-12-053-14/+76
| | | | llvm-svn: 196467
* Correct hyphenations in comments and assert messagesAlp Toker2013-12-0536-56/+56
| | | | | | | This patch tries to avoid unrelated changes other than fixing a few hyphen-related ambiguities in nearby lines. llvm-svn: 196466
* Use makeArrayRef to construct ArrayRefs from C arrays.Rui Ueyama2013-12-052-8/+11
| | | | llvm-svn: 196465
* Per [dcl.meaning]p1, a name in an inline namespace can be redeclared using aRichard Smith2013-12-056-34/+115
| | | | | | | name from the enclosing namespace set if the name is specified as a qualified-id. llvm-svn: 196464
* Fixed a bad assert from r194968. r194969 removed the assert.Richard Trieu2013-12-051-0/+1
| | | | llvm-svn: 196463
* Try harder to get a consistent floating point results.Rafael Espindola2013-12-051-1/+1
| | | | | | | | | This just extends the existing hack. It should be enough to get a reproducible bootstrap on 32 bits. I will open a bug to track getting a real fix for this. llvm-svn: 196462
* Add an assert to make it clear we're on the first lineAlp Toker2013-12-051-1/+3
| | | | | | A raw lexer in its initial state is guaranteed to be on line number one. llvm-svn: 196461
* Revert r196439, "If the LLVM OBJ_DIR path contains any characters not listed ↵NAKAMURA Takumi2013-12-051-4/+2
| | | | | | | | in the" Did you expect to break DOS driveletter? llvm-svn: 196460
* Remove unused variable.Richard Trieu2013-12-051-1/+0
| | | | llvm-svn: 196459
* [PECOFF] Emit the import table to .idata section.Rui Ueyama2013-12-052-23/+33
| | | | | | | | Emitting idata atoms to their own section would make debugging easier. The Windows loader do not really care about whether the DLL import table is in .rdata or its own .idata section, so there is no change in functionality. llvm-svn: 196458
* Move llvm/test/MC/ELF/thumb-st_other.s to test/MC/ARM.NAKAMURA Takumi2013-12-051-0/+0
| | | | llvm-svn: 196457
* For AArch64, add missing register cost calculation for big value types like ↵Jiangning Liu2013-12-053-1/+192
| | | | | | v4i64 and v8i64. llvm-svn: 196456
* Fix non-MSVC build error in ASTContext::getAdjustedTypeReid Kleckner2013-12-051-2/+4
| | | | | | | | Use FunctionTypeUnwrapper like we do in AttributedType to try to keep some sugar. We can actually do one better here in the future by avoiding the AdjustedType node altogether when no sugar would be lost. llvm-svn: 196455
* Fix init-captures for generic lambdas.Faisal Vali2013-12-0512-95/+455
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For an init capture, process the initialization expression right away. For lambda init-captures such as the following: const int x = 10; auto L = [i = x+1](int a) { return [j = x+2, &k = x](char b) { }; }; keep in mind that each lambda init-capture has to have: - its initialization expression executed in the context of the enclosing/parent decl-context. - but the variable itself has to be 'injected' into the decl-context of its lambda's call-operator (which has not yet been created). Each init-expression is a full-expression that has to get Sema-analyzed (for capturing etc.) before its lambda's call-operator's decl-context, scope & scopeinfo are pushed on their respective stacks. Thus if any variable is odr-used in the init-capture it will correctly get captured in the enclosing lambda, if one exists. The init-variables above are created later once the lambdascope and call-operators decl-context is pushed onto its respective stack. Since the lambda init-capture's initializer expression occurs in the context of the enclosing function or lambda, therefore we can not wait till a lambda scope has been pushed on before deciding whether the variable needs to be captured. We also need to process all lvalue-to-rvalue conversions and discarded-value conversions, so that we can avoid capturing certain constant variables. For e.g., void test() { const int x = 10; auto L = [&z = x](char a) { <-- don't capture by the current lambda return [y = x](int i) { <-- don't capture by enclosing lambda return y; } }; If x was not const, the second use would require 'L' to capture, and that would be an error. Make sure TranformLambdaExpr is also aware of this. Patch approved by Richard (Thanks!!) http://llvm-reviews.chandlerc.com/D2092 llvm-svn: 196454
* Parse: Recover better from bad definitions with base specifiersDavid Majnemer2013-12-052-1/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | We would skip until the next comma, hoping good things whould lie there, however this would fail when we have such things as this: struct A {}; template <typename> struct D; template <> struct D<C> : B, A::D; Once this happens, we would believe that D with a nested namespace specifier of A was a variable that was being declared. We would go on to complain that there was an extraneous 'template <>' on their variable declaration. Crashes would happen when 'A' gets defined as 'enum class A {}' as various asserts would fire. Instead, we should skip up until the semicolon if we see that we are in the middle of a definition and the current token is a ':' This fixes PR17084. llvm-svn: 196453
* Provide an easy way for synthetic child provider front ends to declare ↵Enrico Granata2013-12-051-1/+16
| | | | | | | | | | | | themselves “invalid” This is not being used yet, and in practice, more refactoring would be required to make this fully practical In practice, the way this should work is that CalculateNumChildren(), GetChildAtIndex(), GetIndexOfChildWithName() and MightHaveChildren() should all default to failure values when m_valid == false. Update() should be the only function actually setting/clearing the flag upon inspecting the backend ValueObject, if it determines it to be in an incongruent state Given refactoring of the FrontEnd APIs, this work could be automatically performed without the individual providers having to replicate this logic The way this works now is that each front end picks one or more “key ivars” and keys off those to detect invalidity This is a baby step 0 to a better world llvm-svn: 196452
* Add an AdjustedType sugar node for adjusting calling conventionsReid Kleckner2013-12-0525-80/+239
| | | | | | | | | | | | | | | | Summary: In general, this type node can be used to represent any type adjustment that occurs implicitly without losing type sugar. The immediate use of this is to adjust the calling conventions of member function pointer types without breaking template instantiation. Fixes PR17996. Reviewers: rsmith Differential Revision: http://llvm-reviews.chandlerc.com/D2332 llvm-svn: 196451
* Simplify the constructor to CodeGenABITypes.Mark Lacey2013-12-052-8/+12
| | | | | | | | | | | | The CodeGenOptions are not used for ABI type selection, so we will just create one with the default constructor (there is a FloatABI option in CodeGenOptions that is passed on to LLVM, but not used in Clang for LLVM IR type generation). We can use the DiagnosticsEngine on the ASTContext rather than making a client pass one in explicitly. llvm-svn: 196450
* Add FileCheck statements for r196435.Cameron McInally2013-12-052-2/+4
| | | | llvm-svn: 196449
* Compiler.h: Disable initializer list usage with clang-clReid Kleckner2013-12-051-2/+4
| | | | | | | | | Most people are using MSVC 2012, which lacks the <initializer_list> header. MSVC 2013 shipped with that header, but it has not yet been tested. If clang works with the 2013 header, then we can enable this by checking the value of _MSC_VER. llvm-svn: 196448
* Export symbols in tools that support loading plugins.Will Dietz2013-12-054-3/+3
| | | | llvm-svn: 196447
* DwarfDebug: Avoid unnecessary abbreviation lookup when emitting DIEsDavid Blaikie2013-12-052-18/+16
| | | | | | | DIEs already contain references directly to their DIEAbbrev, use that instead of looking it up based on index. llvm-svn: 196446
* DwarfDebug: Remove trivial function wrapperDavid Blaikie2013-12-052-9/+2
| | | | llvm-svn: 196445
OpenPOWER on IntegriCloud