summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [mips][msa] Direct Object Emission for 3RF instructions.Jack Carter2013-09-263-112/+376
| | | | | | Patch by Matheus Almeida llvm-svn: 191461
* [mips][msa] Updates encoding of 3RF instructions to match the latest ↵Jack Carter2013-09-261-2/+2
| | | | | | | | | | revision of the MSA spec (1.06). This does not affect any of the existing output. Patch by Matheus Almeida llvm-svn: 191460
* Fix error recovery when a return type correction includes a new name specifier.Kaelyn Uhrain2013-09-262-4/+7
| | | | llvm-svn: 191459
* Fix up fallout from r187156.Bob Wilson2013-09-263-3/+5
| | | | | | | | | The previous change caused the driver to translate -Wa,-L to the -msave-temp-labels option for cc1as, but cc1as did not accept that option. This patch follows the same approach used for similar options (-relax-all, -noexecstack) in the previous patch. llvm-svn: 191458
* Fix the thread jump test case for 32-bit inferiors. A jump was going back to ↵Matt Kopec2013-09-261-3/+4
| | | | | | a function call using a source line number. However, the parameters being passed to the function were setup before the instruction we jumped to. In other words, the source line was associated with assembly after the function parameters had been setup for the function to be called. llvm-svn: 191457
* missed one Close () call in 191446 overload fix for Posix only code.Carlo Kok2013-09-261-1/+1
| | | | llvm-svn: 191455
* Fix the command name in the syntax text for _regexp-listBen Langmuir2013-09-261-1/+1
| | | | llvm-svn: 191454
* Implement a rudimentary form of generic lambdas.Faisal Vali2013-09-2632-116/+843
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Specifically, the following features are not included in this commit: - any sort of capturing within generic lambdas - generic lambdas within template functions and nested within other generic lambdas - conversion operator for captureless lambdas - ensuring all visitors are generic lambda aware (Although I have gotten some useful feedback on my patches of the above and will be incorporating that as I submit those patches for commit) As an example of what compiles through this commit: template <class F1, class F2> struct overload : F1, F2 { using F1::operator(); using F2::operator(); overload(F1 f1, F2 f2) : F1(f1), F2(f2) { } }; auto Recursive = [](auto Self, auto h, auto ... rest) { return 1 + Self(Self, rest...); }; auto Base = [](auto Self, auto h) { return 1; }; overload<decltype(Base), decltype(Recursive)> O(Base, Recursive); int num_params = O(O, 5, 3, "abc", 3.14, 'a'); Please see attached tests for more examples. This patch has been reviewed by Doug and Richard. Minor changes (non-functionality affecting) have been made since both of them formally looked at it, but the changes involve removal of supernumerary return type deduction changes (since they are now redundant, with richard having committed a recent patch to address return type deduction for C++11 lambdas using C++14 semantics). Some implementation notes: - Add a new Declarator context => LambdaExprParameterContext to clang::Declarator to allow the use of 'auto' in declaring generic lambda parameters - Add various helpers to CXXRecordDecl to facilitate identifying and querying a closure class - LambdaScopeInfo (which maintains the current lambda's Sema state) was augmented to house the current depth of the template being parsed (id est the Parser calls Sema::RecordParsingTemplateParameterDepth) so that SemaType.cpp::ConvertDeclSpecToType may use it to immediately generate a template-parameter-type when 'auto' is parsed in a generic lambda parameter context. (i.e we do NOT use AutoType deduced to a template parameter type - Richard seemed ok with this approach). We encode that this template type was generated from an auto by simply adding $auto to the name which can be used for better diagnostics if needed. - SemaLambda.h was added to hold some common lambda utility functions (this file is likely to grow ...) - Teach Sema::ActOnStartOfFunctionDef to check whether it is being called to instantiate a generic lambda's call operator, and if so, push an appropriately prepared LambdaScopeInfo object on the stack. - various tests were added - but much more will be needed. There is obviously more work to be done, and both Richard (weakly) and Doug (strongly) have requested that LambdaExpr be removed form the CXXRecordDecl LambdaDefinitionaData in a future patch which is forthcoming. A greatful thanks to all reviewers including Eli Friedman, James Dennett, and especially the two gracious wizards (Richard Smith and Doug Gregor) who spent hours providing feedback (in person in Chicago and on the mailing lists). And yet I am certain that I have allowed unidentified bugs to creep in; bugs, that I will do my best to slay, once identified! Thanks! llvm-svn: 191453
* Fix a couple of typos in the help text for disassembleBen Langmuir2013-09-261-1/+1
| | | | llvm-svn: 191452
* clang-modernize: Fixing a few left over cpp11-migrate referencesEdwin Vane2013-09-262-5/+5
| | | | | | Build files for unit tests hadn't been updated yet. llvm-svn: 191451
* Fix a bug in the typo correction replacement location.Kaelyn Uhrain2013-09-262-1/+24
| | | | | | | | I noticed the wrong text was being replaced with the correction while working on expanding the "namespace-aware" typo correction to include classes. llvm-svn: 191450
* Teach typo correction to look inside of classes like it does namespaces.Kaelyn Uhrain2013-09-269-26/+191
| | | | | | | | | | | | | | | Unlike with namespaces, searching inside of classes requires also checking the access to correction candidates (i.e. don't suggest a correction to a private class member for a correction occurring outside that class and its methods or friends). Included is a small (one line) fix for a bug, that was uncovered while cleaning up the unit tests, where the decls from a TypoCorrection candidate were preserved in new TypoCorrection candidates that are derived (copied) from the old TypoCorrection--notably when creating a new candidate by changing the NestedNameSpecifier associated with the base idenitifer. llvm-svn: 191449
* clang-modernize: Reset LoopConvert's TU tracking info per TUEdwin Vane2013-09-264-50/+74
| | | | | | | | | | | | The LoopConvert transform makes use of data structures it builds up over the course of transforming a TU. Until now, these data structures weren't being cleared out before the next TU was being processed. Fixes PR17253. Differential Revision: http://llvm-reviews.chandlerc.com/D175 llvm-svn: 191448
* On Windows MapViewOfFile requires the offset to be aligned on the system ↵Carlo Kok2013-09-261-8/+28
| | | | | | dwAllocationGranularity llvm-svn: 191447
* On windows a socket and file descriptor aren't the same kind of handle, pass ↵Carlo Kok2013-09-262-17/+21
| | | | | | the type to Close so it uses the right api to close it. llvm-svn: 191446
* tsan: fix scanf interceptorDmitry Vyukov2013-09-261-1/+1
| | | | llvm-svn: 191445
* Add macro test from N3781.Richard Smith2013-09-261-0/+5
| | | | llvm-svn: 191444
* Per updates to D3781, allow underscore under ' in a pp-number, and allow ' ↵Richard Smith2013-09-263-3/+12
| | | | | | in a #line directive. llvm-svn: 191443
* clang-cl: Add /FI (forced include) as an alias for -includeReid Kleckner2013-09-262-3/+8
| | | | | | Patch by Jeff Muizelaar, with added test case. llvm-svn: 191442
* Fix PR 17372: Emitting PLD for stack address for ARM Thumb2Weiming Zhao2013-09-262-0/+29
| | | | | | | t2PLDi12, t2PLDi8, t2PLDs was omitted in Thumb2InstrInfo. This patch fixes it. llvm-svn: 191441
* [PowerPC] Fix PR17354: Generate nop after local calls for PIC code.Bill Schmidt2013-09-262-1/+42
| | | | | | | | When generating code for shared libraries, even local calls may be intercepted, so we need a nop after the call for the linker to fix up the TOC. Test case adapted from the one provided in PR17354. llvm-svn: 191440
* [driver] Ignore -fno-var-tracking; it's a GCC option we don't support.Jordan Rose2013-09-262-0/+3
| | | | | | | -fvar-tracking (which IIUC is on by default in GCC) will still generate an error. llvm-svn: 191439
* Revert r191393 since it caused pr17380.Andrea Di Biagio2013-09-262-201/+0
| | | | llvm-svn: 191438
* Remove fno_builtin_strcat and fno_builtin_strcpy.Rafael Espindola2013-09-262-3/+2
| | | | | | | They are already handled by the generic fno_bultin_, which also avoids unused warnings. llvm-svn: 191437
* Mark an impossible path as unreachable to pacify GCC.Benjamin Kramer2013-09-261-0/+1
| | | | llvm-svn: 191436
* Remove -fbuiltin-strcat and -fbuiltin-strcpy.Rafael Espindola2013-09-261-2/+0
| | | | | | These options don't exist in gcc and clang was not handling them. llvm-svn: 191435
* Ignore unknown -fno-builtin-*.Rafael Espindola2013-09-262-0/+3
| | | | | | This matches gcc's behavior. llvm-svn: 191434
* Remove unused parameter.Rafael Espindola2013-09-261-17/+17
| | | | llvm-svn: 191433
* [Sparc] Implements exception handling in SPARC with DwarfCFI.Venkatraman Govindaraju2013-09-265-4/+138
| | | | llvm-svn: 191432
* Implements parsing and emitting of .cfi_window_save in MC.Venkatraman Govindaraju2013-09-269-2/+112
| | | | llvm-svn: 191431
* Fix the partial backtrace in a recursive inferior compiled with ↵Ashok Thirumurthi2013-09-262-17/+2
| | | | | | | | | | | | -fomit-frame-pointer. - Removes the block in UnwindLLDB::AddOneMoreFrame that tests for a bad stack setup, since it is neither correct (tests the FP GPR), complete (doesn't consider multi-frame cycles), nor reachable (the construction of RegisterContextLLDB will fail in the case where either of the two (why just two?) previous frames have the same canonical frame address as the frame that we propose adding to the stack). llvm-svn: 191430
* Ignore some -f options that are supported by gcc.Rafael Espindola2013-09-262-0/+54
| | | | | | | It is possible that we should say some of these are unsupported, but this is not any worse than the old behavior of ignoring all unknown -f options. llvm-svn: 191429
* [ARM] Use the load-acquire/store-release instructions optimally in AArch32.Amara Emerson2013-09-2612-372/+1896
| | | | | | Patch by Artyom Skrobov. llvm-svn: 191428
* Remove tabs.Benjamin Kramer2013-09-261-91/+91
| | | | llvm-svn: 191427
* PPC: Allow partial fills in writeNopData()David Majnemer2013-09-262-5/+11
| | | | | | | | | | | | | | | | | | When asked to pad an irregular number of bytes, we should fill with zeros. This is consistent with the behavior specified in the AIX Assembler Language Reference as well as other LLVM and binutils assemblers. N.B. There is a small deviation from binutils' PPC assembler: when handling pads which are greater than 4 bytes but not mod 4, binutils will not emit any NOP sequences at all and only use zeros. This may or may not be a bug but there is no excellent rationale as to why that behavior is important to emulate. If that behavior is needed, we can change writeNopData() to behave in the same way. This fixes PR17352. llvm-svn: 191426
* Add links to cross-compilation docs from getting startedRenato Golin2013-09-261-0/+4
| | | | llvm-svn: 191425
* Fix buildbot breakage.Richard Smith2013-09-261-4/+4
| | | | llvm-svn: 191424
* Added temp flag -misched-bench for staging in default changes.Andrew Trick2013-09-265-4/+22
| | | | llvm-svn: 191423
* whitespaceAndrew Trick2013-09-261-2/+2
| | | | llvm-svn: 191422
* PPC: Do not introduce ISD nodes for fctid and fctiwDavid Majnemer2013-09-263-8/+6
| | | | llvm-svn: 191421
* Replace a bool with an enum for clarity, based on review comment from James ↵Richard Smith2013-09-262-8/+11
| | | | | | Dennett. llvm-svn: 191420
* PPC: Add support for fctid and fctiwDavid Majnemer2013-09-264-8/+20
| | | | | | | | | Encodings were checked against the Power ISA documents and double checked against binutils. This fixes PR17350. llvm-svn: 191419
* If a partial specialization of a member template is declared within a classRichard Smith2013-09-263-5/+40
| | | | | | | | | template and defined outside it, don't instantiate it twice when instantiating the surrounding class template specialization. That would cause us to reject the code because we think two partial specializations instantiated to produce the same signature. llvm-svn: 191418
* Implement C++1y digit separator proposal (' as a digit separator). This is notRichard Smith2013-09-267-13/+107
| | | | | | yet approved by full committee, but was unanimously supported by EWG. llvm-svn: 191417
* [OPENMP] Improved variable lookup procedure for threadprivate variables.Alexey Bataev2013-09-264-8/+51
| | | | llvm-svn: 191416
* [mips][msa] Direct Object Emission for 3R instructions.Jack Carter2013-09-264-330/+1122
| | | | | | | | This is the first set of instructions with a ".b" modifier thus we need to add the required code to disassemble a MSA128B register class. Patch by Matheus Almeida llvm-svn: 191415
* [mips][msa] Updates encoding of 3R instructions to match the latest revision ↵Jack Carter2013-09-261-9/+9
| | | | | | | | | | | of the MSA spec (1.06). Internal changes only. Patch by Matheus Almeida llvm-svn: 191414
* [mips][msa] Direct Object Emission for 2RF instructions.Jack Carter2013-09-252-41/+126
| | | | | | Patch by Matheus Almeida llvm-svn: 191413
* [mips][msa] Direct Object Emission support for the MSA instruction set. Jack Carter2013-09-256-8/+247
| | | | | | | | | | In more detail, this patch adds the ability to parse, encode and decode MSA registers ($w0-$w31). The format of 2RF instructions (MipsMSAInstrFormat.td) was updated so that we could attach a test case to this patch i.e., the test case parses, encodes and decodes 2 MSA instructions. Following patches will add the remainder of the instructions. Note that DecodeMSA128BRegisterClass is missing from MipsDisassembler.td because it's not yet required at this stage and having it would cause a compiler warning (unused function). Patch by Matheus Almeida llvm-svn: 191412
* [mips][msa] Updates encoding of 2RF instructions to match the latest ↵Jack Carter2013-09-251-4/+4
| | | | | | | | | | | | revision of the MSA spec (1.06). This only changes internal encodings and doesn't affect output. Patch by Matheus Almeida llvm-svn: 191411
OpenPOWER on IntegriCloud