summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* Revert "Revert "[FunctionAttrs] Identify norecurse functions""James Molloy2015-11-127-11/+152
| | | | | | This reapplies this patch, with test fixes. llvm-svn: 252871
* [libcxx] Fixup a few fumbles in the initial no-exceptions XFAILs list.Asiri Rathnayake2015-11-125-3/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The initial buildbot run found a few missing bits in the initial XFAIL list for the no-exceptions libc++ variant. These discrepancies are as follows: [1] Following two tests need XFAILs on the no-exceptions library variant. My local runs had these two disabled for other reasons (unsupported): - localization/locales/locale/locale.cons/char_pointer.pass.cpp - numerics/complex.number/complex.ops/complex_divide_complex.pass.cpp [2] These three does not need XFAILs, they were failing on my local runs for other reasons: - depr/depr.c.headers/uchar_h.pass.cpp - input.output/iostreams.base/ios/basic.ios.members/copyfmt.pass.cpp - .../category.collate/locale.collate.byname/transform.pass.cpp (these are failing on my box for the default build as well) The current patch fixes both the cases above. Additionally, I've run the following scan to make sure I've covered all the cases: > grep ' catch \| try \| throw ' -R . | perl -pe 's|(.*?):.*|\1|' | sort | \ uniq > 1.txt > grep 'libcpp-no-exceptions' -R . | perl -pe 's|(.*?):.*|\1|' | sort | \ uniq > 2.txt > diff 1.txt 2.txt This showed up a few extra interesting cases: [3] These two tests do not use try/catch/throw statements, but they fail at runtime. Need to be investigated, I've left the XFAILs in. - std/thread/futures/futures.shared_future/dtor.pass.cpp - std/thread/futures/futures.unique_future/dtor.pass.cpp [4] These tests use a macro named TEST_HAS_NO_EXCEPTIONS to conditionally exclude try/catch/throw statements when running without exceptions. I'm not entirely sure why this was needed (AFAIK, we didn't have a no-exceptions library build before). The macro's defintion is quite similar to that of _LIBCPP_NO_EXCEPTIONS. I will investigate if this can be reused for my test fixes or if it should be replaced with _LIBCPP_NO_EXCEPTIONS. - std/experimental/any/* Change-Id: I9ad1e0edd78f305406eaa0ab148b1ab693f7e26a llvm-svn: 252870
* tsan: fix flakiness of sleep_sync2 testDmitry Vyukov2015-11-121-1/+4
| | | | llvm-svn: 252869
* [ELF2] SECTIONS command basic supportDenis Protivensky2015-11-124-11/+207
| | | | | | | | | | * determine output section by input section name * discard input sections * order output sections accordingly Differential Revision: http://reviews.llvm.org/D14140 llvm-svn: 252868
* [Object, MachO] Mark symbols from DATA and BSS sections as ST_DataKuba Brecka2015-11-123-4/+7
| | | | | | | | In `MachOObjectFile::getSymbolType` we currently always return `SymbolRef::ST_Function` for symbols from any section. In order for llvm-symbolizer to correctly symbolize Mach-O globals, symbols from data and BSS sections should return `SymbolRef::ST_Data`. Differential Revision: http://reviews.llvm.org/D14576 llvm-svn: 252867
* dwarfdump: Added macro support to llvm-dwarfdump tool.Amjad Aboud2015-11-1216-1/+237
| | | | | | | | Added "macro" option to "-debug-dump" flag, which trigger parsing and dumping of the ".debug_macinfo" section. Differential Revision: http://reviews.llvm.org/D14294 llvm-svn: 252866
* Add AVR backend skeletonDylan McKay2015-11-1211-0/+145
| | | | | | | | | | | | | This adds part of the target info code, and adds modifications to the build scripts so that AVR is recognized a supported, experimental backend. It does not include any AVR-specific code, just the bare sources required for a backend to exist. From D14039. llvm-svn: 252865
* [ELF2] Fix gcc warning in section kind switchDenis Protivensky2015-11-121-0/+1
| | | | llvm-svn: 252864
* Revert "[FunctionAttrs] Identify norecurse functions"James Molloy2015-11-127-152/+11
| | | | | | This reverts commit r252862. This introduced test failures and I'm reverting while I investigate how this happened. llvm-svn: 252863
* [FunctionAttrs] Identify norecurse functionsJames Molloy2015-11-127-11/+152
| | | | | | | | | | | | | A function can be marked as norecurse if: * The SCC to which it belongs has cardinality 1; and either a) It does not call any non-norecurse function. This includes self-recursion; or b) It only has one callsite and the function that callsite is within is marked norecurse. a) is best propagated bottom-up and b) is best propagated top-down. We build up the norecurse attributes bottom-up using the existing SCC pass, and mark functions with no obvious recursion (but not provably norecurse) to sweep later, top-down. llvm-svn: 252862
* Use %select to merge two diagnostics that only differ in one word and are ↵Craig Topper2015-11-122-7/+4
| | | | | | emitted in the same place. NFC llvm-svn: 252861
* RegionGenerator: Only introduce subregion.ivs for loops fully within a subregionTobias Grosser2015-11-123-5/+1
| | | | | | | | | | | | | | | IVs of loops for which the loop header is in the subregion, but not the entire loop may be incremented outside of the subregion and can consequently not be kept private to the subregion. Instead, they need to and are modeled as virtual loops in the iteration domains. As this is the case, generating new subregion induction variables for such loops is not needed and indeed wrong as they would hide the virtual induction variables modeled in the scop. This fixes a miscompile in MultiSource/Benchmarks/Ptrdist/bc and MultiSource/Benchmarks/nbench/. Thanks Michael and Johannes for their investiagations and helpful observations regarding this bug. llvm-svn: 252860
* Mostly revert 252842 due to failures on some buildbots.David Blaikie2015-11-122-69/+15
| | | | | | | | | | | | | | I imagine there's some UB in here somewhere, though Valgrind doesn't seem to have picked it up (not sure if I have a working asan build right now to test there). GDB bot seems to be crashing: http://lab.llvm.org:8011/builders/clang-x86_64-ubuntu-gdb-75/builds/26267/steps/check-all/logs/FAIL%3A%20LLVM%3A%3Adwarfdump-dwp.test Hexagon ELF bot is, presumably, just getting different output: http://lab.llvm.org:8011/builders/clang-hexagon-elf/builds/32927/steps/check-all/logs/FAIL%3A%20LLVM%3A%3Adwarfdump-dwp.test llvm-svn: 252859
* [WebAssembly] Switch to MC for instruction printing.Dan Gohman2015-11-1238-1074/+744
| | | | | | | | | | | | | | | | | | | | This encompasses several changes which are all interconnected: - Use the MC framework for printing almost all instructions. - AsmStrings are now live. - This introduces an indirection between LLVM vregs and WebAssembly registers, and a new pass, WebAssemblyRegNumbering, for computing a basic the mapping. This addresses some basic issues with argument registers and unused registers. - The way ARGUMENT instructions are handled no longer generates redundant get_local+set_local for every argument. This also changes the assembly syntax somewhat; most notably, MC's printing use sigils on label names, so those are no longer present, and push/pop now have a sigil to keep them unambiguous. The usage of set_local/get_local/$push/$pop will continue to evolve significantly. This patch is just one step of a larger change. llvm-svn: 252858
* [ELF2] Add mandatory .dynamic section entries on MIPS.Igor Kudrin2015-11-126-8/+184
| | | | | | | | | | | | | | | | | | | | | The MIPS target requires specific dynamic section entries to be defined. * DT_MIPS_RLD_VERSION and DT_MIPS_FLAGS store predefined values. * DT_MIPS_BASE_ADDRESS holds base VA. * DT_MIPS_LOCAL_GOTNO holds the number of local GOT entries. * DT_MIPS_SYMTABNO holds the number of .dynsym entries. * DT_MIPS_GOTSYM holds the index of the .dynsym entry which corresponds to the first entry of the global part of GOT. * DT_MIPS_RLD_MAP holds the address of the reserved space in the data segment. * DT_MIPS_PLTGOT points to the .got.plt section if it exists. * DT_PLTGOT holds the address of the GOT section. See "Dynamic Section" in Chapter 5 in the following document for detailed description: ftp://www.linux-mips.org/pub/linux/mips/doc/ABI/mipsabi.pdf Differential revision: http://reviews.llvm.org/D14450 llvm-svn: 252857
* output_csv libfuzzer optionMike Aizatsky2015-11-124-8/+25
| | | | | | | | | | | Summary: The option outputs statistics in CSV format preceded by 1 header line. This is intended for machine processing of the output. -verbosity=0 should likely be set. Differential Revision: http://reviews.llvm.org/D14600 llvm-svn: 252856
* [Sema] Remove unnecessary parens in check using logical or; NFC.Nathan Wilson2015-11-121-1/+1
| | | | llvm-svn: 252855
* [ELF2] Sort dynamic symbols according to the MIPS requirements.Igor Kudrin2015-11-124-0/+74
| | | | | | | | | | | | | The MIPS ABI has requirements to sort the entries in the .dyn.sym section. Symbols which are not in the GOT have to precede the symbols which are added to the GOT. The latter must have the same order as the corresponding GOT entries. Since these sorting requirements contradict those of the GNU hash section, they cannot be used together. Differential revision: http://reviews.llvm.org/D14281 llvm-svn: 252854
* libclang: add clang_Cursor_getCXXManglingsSaleem Abdulrasool2015-11-125-0/+163
| | | | | | | | | This function permits the mangling of a C++ 'structor. Depending on the ABI and the declaration, the declaration may contain more than one associated symbol for a given declaration. This allows the consumer to retrieve all of the associated symbols for the declaration the cursor points to. llvm-svn: 252853
* libclang: add new StringSet typeSaleem Abdulrasool2015-11-124-0/+28
| | | | | | | This allows the return of a set of CXStrings from libclang. This is setup work for an upcoming change to permit returning multiple mangled symbols. llvm-svn: 252852
* Use parameter constraints provided via llvm.assumeJohannes Doerfert2015-11-126-9/+301
| | | | | | | | | If an llvm.assume dominates the SCoP entry block and the assumed condition can be expressed as an affine inequality we will now add it to the context. Differential Revision: http://reviews.llvm.org/D14413 llvm-svn: 252851
* [AttrDocs] Insert blank lines before and after code-block directives.Akira Hatanaka2015-11-121-0/+6
| | | | | | The code snippets were not being displayed. This commit fixes the bug. llvm-svn: 252849
* Emit remarks for taken assumptionsJohannes Doerfert2015-11-123-11/+81
| | | | | | Differential Revision: http://reviews.llvm.org/D14412 llvm-svn: 252848
* Emit remark about aliasing pointersJohannes Doerfert2015-11-122-0/+9
| | | | llvm-svn: 252847
* Emit SCoP source location as remark during ScopInfoJohannes Doerfert2015-11-125-26/+327
| | | | | | | This removes a similar feature from ScopDetection, though with -polly-report that feature present twice anyway. llvm-svn: 252846
* dwarfdump: Add error checking to fix the buildbots/correctnessDavid Blaikie2015-11-121-4/+4
| | | | llvm-svn: 252845
* dwarfdump: Add some error handling for DWP index sections of the wrong sizeDavid Blaikie2015-11-121-0/+7
| | | | llvm-svn: 252843
* dwarfdump: Dump the contents of DWP indexesDavid Blaikie2015-11-124-21/+121
| | | | llvm-svn: 252842
* Change code owner for Clang Static Analyzer to Anna Zaks.Ted Kremenek2015-11-121-2/+2
| | | | llvm-svn: 252841
* Refactor out some common code from r252834David Blaikie2015-11-121-39/+26
| | | | llvm-svn: 252840
* LegalizeDAG: Fix and improve FCOPYSIGN/FABS legalizationMatthias Braun2015-11-123-79/+152
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Factor out code to query and modify the sign bit of a floatingpoint value as an integer. This also works if none of the targets integer types is big enough to hold all bits of the floatingpoint value. - Legalize FABS(x) as FCOPYSIGN(x, 0.0) if FCOPYSIGN is available, otherwise perform bit manipulation on the sign bit. The previous code used "x >u 0 ? x : -x" which is incorrect for x being -0.0! It also takes 34 instructions on ARM Cortex-M4. With this patch we only require 5: vldr d0, LCPI0_0 vmov r2, r3, d0 lsrs r2, r3, #31 bfi r1, r2, #31, #1 bx lr (This could be further improved if the compiler would recognize that r2, r3 is zero). - Only lower FCOPYSIGN(x, y) = sign(x) ? -FABS(x) : FABS(x) if FABS is available otherwise perform bit manipulation on the sign bit. - Perform the sign(x) test by masking out the sign bit and comparing with 0 rather than shifting the sign bit to the highest position and testing for "<s 0". For x86 copysignl (on 80bit values) this gets us: testl $32768, %eax rather than: shlq $48, %rax sets %al testb %al, %al Differential Revision: http://reviews.llvm.org/D11172 llvm-svn: 252839
* [libFuzzer] experimental flag -drill (another search heuristic; Mike ↵Kostya Serebryany2015-11-126-20/+89
| | | | | | Aizatsky's idea) llvm-svn: 252838
* [TLS on Darwin] use a different mask for tls calls on x86-64.Manman Ren2015-11-125-0/+44
| | | | | | | | | Calls involved in thread-local variable lookup save more registers than normal calls. rdar://problem/23073171 llvm-svn: 252837
* [CMake] Setup an install component for libclang and c-index-test.Argyrios Kyrtzidis2015-11-123-10/+30
| | | | | | Also don't create libclang dylib symlinks on darwin. llvm-svn: 252836
* dwarfdump: Use the right enum for the tu_index sectionDavid Blaikie2015-11-121-1/+1
| | | | llvm-svn: 252835
* Provide a frontend based error for always_inline functions that requireEric Christopher2015-11-127-123/+94
| | | | | | | | | | | | | | | target features that the caller function doesn't provide. This matches the existing backend failure to inline functions that don't have matching target features - and diagnoses earlier in the case of always_inline. Fix up a few test cases that were, in fact, invalid if you tried to generate code from the backend with the specified target features and add a couple of tests to illustrate what's going on. This should fix PR25246. llvm-svn: 252834
* Move checkTargetFeatures to CodeGenFunction.cpp to make itEric Christopher2015-11-122-42/+43
| | | | | | more obvious that it's generic. llvm-svn: 252833
* In preparation to use it in more places renameEric Christopher2015-11-122-14/+12
| | | | | | | checkBuiltinTargetFeatures to checkTargetFeatures and sink the error handling into the function. llvm-svn: 252832
* [test] Fix comment.Dawn Perchik2015-11-121-1/+1
| | | | llvm-svn: 252831
* dwarfdump: add command line support for dumping the tu_index sectionDavid Blaikie2015-11-121-1/+2
| | | | llvm-svn: 252830
* Fix problems in coding styleXinliang David Li2015-11-121-13/+23
| | | | llvm-svn: 252829
* [Basic] Fix DRY violation, just call getLineTable() (NFC)Vedant Kumar2015-11-121-8/+3
| | | | llvm-svn: 252828
* Add diagnostics which fall under [dcl.spec.concept]p5Nathan Wilson2015-11-113-0/+22
| | | | | | | | | | | | Summary: Diagnose when a function concept declaration has parameter(s) Reviewers: rsmith, faisalv, aaron.ballman, hubert.reinterpretcast Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D14352 llvm-svn: 252827
* [ARM] Enable shrink-wrapping by default.Quentin Colombet2015-11-1112-18/+32
| | | | | | | | Differential Revision: http://reviews.llvm.org/D14357 rdar://problem/21942589 llvm-svn: 252825
* [WinEH] Don't forward branches across empty EH pad BBsReid Kleckner2015-11-113-1/+55
| | | | | | | For really simple SEH catchpads, we tried to forward the invoke unwind edge across the empty block. llvm-svn: 252822
* [TLS on Darwin] treat all Darwin platforms in the same way.Manman Ren2015-11-112-4/+4
| | | | | | rdar://problem/9001553 llvm-svn: 252820
* Extract out a function onto CodeGenModule for getting the map ofEric Christopher2015-11-115-44/+47
| | | | | | | features for a particular function, then use it to clean up some code. llvm-svn: 252819
* [LIR] General refactor to improve compile-time and simplify code.Chad Rosier2015-11-111-16/+26
| | | | | | | | | | | First create a list of candidates, then transform. This simplifies the code in that you have don't have to worry that you may be using an invalidated iterator. Previously, each time we created a memset/memcpy we would reevaluate the entire loop potentially resulting in lots of redundant work for large basic blocks. llvm-svn: 252817
* [sanitizer coverage] reset global counters in __sanitizer_reset_coverageKostya Serebryany2015-11-112-0/+7
| | | | llvm-svn: 252815
* [TLS on Darwin] change how we handle globals with linkonce or weak linkage.Manman Ren2015-11-115-37/+60
| | | | | | | | | | | | This is about how we handle static member of a template. Before this commit, we use internal linkage for the IR thread-local variable, which is inefficient. With this commit, we will start to follow Itanium C++ ABI. rdar://problem/23415206 Reviewed by John McCall. llvm-svn: 252814
OpenPOWER on IntegriCloud