summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* GlobalOpt: Aliases don't have sections, don't copy them when replacingReid Kleckner2014-02-133-5/+11
| | | | | | | | | | | | | | | | | | | | | As defined in LangRef, aliases do not have sections. However, LLVM's GlobalAlias class inherits from GlobalValue, which means we can read and set its section. We should probably ban that as a separate change, since it doesn't make much sense for an alias to have a section that differs from its aliasee. Fixes PR18757, where the section was being lost on the global in code from Clang like: extern "C" { __attribute__((used, section("CUSTOM"))) static int in_custom_section; } Reviewers: rafael.espindola Differential Revision: http://llvm-reviews.chandlerc.com/D2758 llvm-svn: 201286
* Really fix unused variable warnings in CIndex.Reid Kleckner2014-02-131-0/+1
| | | | llvm-svn: 201285
* Remove decorator for fixed testEd Maste2014-02-131-1/+0
| | | | | | llvm.org/pr18805 fixed by r201270 llvm-svn: 201284
* [CMake] llvm_add_library: Add handling of the parameter ADDITIONAL_HEADERS ↵NAKAMURA Takumi2014-02-131-3/+7
| | | | | | | | | | | to pass through to process_source. I was insightless then about unknown optional parameters. (Consider that LINK_LIBS foo bar ADDITIONAL_HEADERS qux quux) Suggested by Michael Kruse. Thanks! llvm-svn: 201283
* ms_struct layout replaces platform-specific behavior likeJohn McCall2014-02-132-17/+89
| | | | | | | | | useBitFieldTypeAlignment() and appears to ignore the special bit-packing semantics of __attribute__((packed)). Further flesh out an already-extensive comment. llvm-svn: 201282
* Change testcase to use FileCheck.John McCall2014-02-131-17/+22
| | | | llvm-svn: 201281
* Fix uninitialized read in vtordisp pragma code.Reid Kleckner2014-02-131-3/+3
| | | | llvm-svn: 201280
* Fix misleading comment.Lang Hames2014-02-131-1/+1
| | | | llvm-svn: 201279
* Fix some -Wdocumentation warnings in Sema.h and try to fix test for win64Reid Kleckner2014-02-132-5/+5
| | | | llvm-svn: 201278
* The new MCJIT C-API unit test is generating objects without constant dataLang Hames2014-02-131-1/+1
| | | | | | | sections, at least on MachO. Relax expectations to keep the bots green while I investigate. llvm-svn: 201277
* Silence unused variable warning in CIndex.cpp with NDEBUGReid Kleckner2014-02-121-0/+1
| | | | llvm-svn: 201276
* Remove a very old instcombine where we would turn sequences of selects intoOwen Anderson2014-02-122-25/+24
| | | | | | | | | | | | | logical operations on the i1's driving them. This is a bad idea for every target I can think of (confirmed with micro tests on all of: x86-64, ARM, AArch64, Mips, and PowerPC) because it forces the i1 to be materialized into a general purpose register, whereas consuming it directly into a select generally allows it to exist only transiently in a predicate or flags register. Chandler ran a set of performance tests with this change, and reported no measurable change on x86-64. llvm-svn: 201275
* MS ABI: Implement #pragma vtordisp() and clang-cl /vdNReid Kleckner2014-02-1225-36/+465
| | | | | | | | | | | | | | | | | These features are new in VS 2013 and are necessary in order to layout std::ostream correctly. Currently we have an ABI incompatibility when self-hosting with the 2013 stdlib in our convertible_fwd_ostream wrapper in gtest. This change adds another implicit attribute, MSVtorDispAttr, because implicit attributes are currently the best way to make sure the information stays on class templates through instantiation. Reviewers: majnemer Differential Revision: http://llvm-reviews.chandlerc.com/D2746 llvm-svn: 201274
* Fixed the TestLogging test.Greg Clayton2014-02-121-1/+8
| | | | llvm-svn: 201273
* [Vectorizer] Add a new 'OperandValueKind' in TargetTransformInfo calledAndrea Di Biagio2014-02-127-15/+293
| | | | | | | | | | | | | | | | | | | | | | | | | | | 'OK_NonUniformConstValue' to identify operands which are constants but not constant splats. The cost model now allows returning 'OK_NonUniformConstValue' for non splat operands that are instances of ConstantVector or ConstantDataVector. With this change, targets are now able to compute different costs for instructions with non-uniform constant operands. For example, On X86 the cost of a vector shift may vary depending on whether the second operand is a uniform or non-uniform constant. This patch applies the following changes: - The cost model computation now takes into account non-uniform constants; - The cost of vector shift instructions has been improved in X86TargetTransformInfo analysis pass; - BBVectorize, SLPVectorizer and LoopVectorize now know how to distinguish between non-uniform and uniform constant operands. Added a new test to verify that the output of opt '-cost-model -analyze' is valid in the following configurations: SSE2, SSE4.1, AVX, AVX2. llvm-svn: 201272
* [X86] Teach the backend how to lower vector shift left into multiply rather ↵Andrea Di Biagio2014-02-123-2/+169
| | | | | | | | | | | | | | | | | | | | | | | | | than scalarizing it. Instead of expanding a packed shift into a sequence of scalar shifts, the backend now tries (when possible) to convert the vector shift into a vector multiply. Before this change, a shift of a MVT::v8i16 vector by a build_vector of constants was always scalarized into a long sequence of "vector extracts + scalar shifts + vector insert". With this change, if there is SSE2 support, we emit a single vector multiply. This change also affects SSE4.1, AVX, AVX2 shifts: - A shift of a MVT::v4i32 vector by a build_vector of non uniform constants is now lowered when possible into a single SSE4.1 vector multiply. - Packed v16i16 shift left by constant build_vector are now expanded when possible into a single AVX2 vpmullw. This change also improves the lowering of AVX512f vector shifts. Added test CodeGen/X86/vec_shift6.ll with some code examples that are affected by this change. llvm-svn: 201271
* Fixed the functionalities/abbreviation/TestAbbreviations.py test case.Greg Clayton2014-02-121-2/+1
| | | | llvm-svn: 201270
* VS Integration: install toolsets for x64 too (PR18738)Hans Wennborg2014-02-124-66/+97
| | | | | | | | | This does exactly the same thing as for Win32, except it passes -m64 to the compiler and the files go in a different directory. Differential Revision: http://llvm-reviews.chandlerc.com/D2749 llvm-svn: 201269
* Add support for DW_OP_piece and DW_OP_bit_piece.Greg Clayton2014-02-121-3/+84
| | | | llvm-svn: 201268
* DebugInfo: Demonstrate that we're not currently uniquing address table ↵David Blaikie2014-02-121-9/+60
| | | | | | | | | entries in fission Since I just discovered this while poking at other things, here's the test case so I have it to come back to later. llvm-svn: 201267
* DebugInfo: Merge fission and non-fission (and 32 and 64 bit) tests for TLS ↵David Blaikie2014-02-122-47/+33
| | | | | | support. llvm-svn: 201266
* Reformat a few lines with clang-format.Eric Christopher2014-02-121-4/+8
| | | | llvm-svn: 201265
* 80-col.Eric Christopher2014-02-121-1/+2
| | | | llvm-svn: 201264
* [Stackmaps] Improve the stackmap lowering code in the SelectionDAGBuilder.Juergen Ributzka2014-02-121-33/+33
| | | | | | | | | | We are now no longer relying on the target-specific call lowering implementation to lower a stackmap intrinsic call. Instead we perform the call lowering in a target-independent way directly in the stackmap lowering code. This simplifies the code and removes the need to fixup the code after the target-specific call lowering. llvm-svn: 201263
* [Stackmaps] Fix the ID type to be i64 also for stackmaps (as we claim in the ↵Juergen Ributzka2014-02-122-8/+9
| | | | | | | | | | | documenation) The ID type for the stackmap and patchpoint intrinsics are in both cases i64. This fixes an zero extend in the SelectionDAGBuilder that still used i32. This also updates the target independent instructions STACKMAP and PATCHPOINT to use the correct type. llvm-svn: 201262
* Don't try to build ExceptionDemo on ARM.Rafael Espindola2014-02-121-1/+1
| | | | | | The demo uses _Unwind_GetIP which is not available on that platform. llvm-svn: 201261
* Remove FIXME and hardcoded triple from this test (PR18251)Hans Wennborg2014-02-121-3/+1
| | | | | | We don't support using the MS ABI with non-x86/x86_64 targets anyway. llvm-svn: 201260
* Extend RTDyld API to enable optionally precomputing the total amount of memoryLang Hames2014-02-125-66/+351
| | | | | | | | | | | | | | | | | | required for all sections in a module. This can be useful when targets or code-models place strict requirements on how sections must be laid out in memory. If RTDyldMemoryManger::needsToReserveAllocationSpace() is overridden to return true then the JIT will call the following method on the memory manager, which can be used to preallocate the necessary memory. void RTDyldMemoryManager::reserveAllocationSpace(uintptr_t CodeSize, uintptr_t DataSizeRO, uintptr_t DataSizeRW) Patch by Vaidas Gasiunas. Thanks very much Viadas! llvm-svn: 201259
* Rename Windows.h to WindowsSupport.h to avoid ambiguityReid Kleckner2014-02-1214-15/+18
| | | | llvm-svn: 201258
* Remove unused diagnostic.Benjamin Kramer2014-02-121-2/+0
| | | | llvm-svn: 201257
* [examples] Use loadable modules instead of shared libraries for Clang plugins.Jordan Rose2014-02-123-30/+3
| | | | | | This avoids linking in extra copies of, say, LLVMSupport. llvm-svn: 201256
* _CS_DARWIN_USER macros available on darwin>=9. Thanks, Dave Odell!David Fang2014-02-121-1/+2
| | | | llvm-svn: 201255
* Sema: Restrict alignment to 2**28.David Majnemer2014-02-123-10/+9
| | | | | | | | Allowing alignment past this point causes wrap around within clang. N.B. GCC has the same restriction. llvm-svn: 201254
* Debug info: Bugfix for r201190: DW_OP_piece takes bytes, not bits.Adrian Prantl2014-02-124-5/+7
| | | | | | rdar://problem/16015314 llvm-svn: 201253
* [sanitizer] Intercept capget()/capset().Sergey Matveev2014-02-123-10/+39
| | | | | | Also, fix incorrect syscall hooks for the corresponding syscalls. llvm-svn: 201252
* Attributes: Avoid a big useless copy in the emitterReid Kleckner2014-02-121-1/+2
| | | | llvm-svn: 201251
* relax testcase and make ppc64 buildbots happy.Adrian Prantl2014-02-121-4/+4
| | | | llvm-svn: 201250
* libclang: report error code for bad PCH filesDmitri Gribenko2014-02-129-157/+410
| | | | | | | | | | | | | | | | | | | This commit improves libclang to report the error condition when CXTranslationUnit can not be created because of a stale PCH file. This allows the caller, for example, to rebuild the PCH file and retry the request. There two are APIs in libclang that return a CXTranslationUnit and don't support reporting detailed errors (the only error condition is a NULL result). For these APIs, a second, superior, version is introduced -- clang_createTranslationUnit2 and clang_parseTranslationUnit2. These functions return a CXTranslationUnit indirectly and also return an error code. Old functions are still supported and are nothing more than convenience wrappers that ignore extended error codes. As a cleanup, this commit also categorizes some libclang errors in the functions I had to modify anyway. llvm-svn: 201249
* Document and improve the debug-property-synth.m test based on theAdrian Prantl2014-02-121-6/+22
| | | | | | information provided in the referenced radar. llvm-svn: 201248
* Revert "Remove bad debug info test."Adrian Prantl2014-02-121-0/+20
| | | | | | | | This reverts commit r201183. The test, albeit undocumented and badly written is still testing something useful. It will be updated in a subsequent commit. llvm-svn: 201247
* Attributes: Emit enumerators in td file declaration orderReid Kleckner2014-02-121-9/+18
| | | | llvm-svn: 201246
* Pass edges weights to MachineBasicBlock::addSuccessor in TailDuplicatePass toAkira Hatanaka2014-02-122-2/+66
| | | | | | | | preserve branch probability information. <rdar://problem/15893208> llvm-svn: 201245
* Change TestAbbreviations test to expected failure on Linux.Todd Fiala2014-02-121-0/+1
| | | | | | | See http://llvm.org/bugs/show_bug.cgi?id=18816. Likely the same issue as http://llvm.org/bugs/show_bug.cgi?id=18805. llvm-svn: 201244
* PC-rel implemented in AArch64, test now passRenato Golin2014-02-121-1/+1
| | | | llvm-svn: 201243
* Move more self-contained functionality away from tools/opt/opt.cppEli Bendersky2014-02-124-61/+110
| | | | | | BreakpointPrinter moves to its own module. llvm-svn: 201242
* Revert r201237+r201238: Demote EmitRawText call in ↵Daniel Sanders2014-02-1284-181/+90
| | | | | | | | AsmPrinter::EmitInlineAsm() and remove hasRawTextSupport() call It introduced multiple test failures in the buildbots. llvm-svn: 201241
* [asan] Handle OpenFile errors in CovDump.Evgeniy Stepanov2014-02-121-3/+7
| | | | llvm-svn: 201240
* Revert "Enforce python2 for systems that use python3 as their default."Tom Stellard2014-02-121-1/+1
| | | | | | | | | This reverts commit r200413. This was breaking the build on systems where the python 2.x executable was called python. llvm-svn: 201239
* Arcanist failed to commit the two clang test corrections that should have ↵Daniel Sanders2014-02-122-5/+6
| | | | | | been in r201237. llvm-svn: 201238
* Demote EmitRawText call in AsmPrinter::EmitInlineAsm() and remove ↵Daniel Sanders2014-02-1282-85/+175
| | | | | | | | | | | | | | | | | | | | | hasRawTextSupport() call Summary: AsmPrinter::EmitInlineAsm() will no longer use the EmitRawText() call for targets with mature MC support. Such targets will always parse the inline assembly (even when emitting assembly). Targets without mature MC support continue to use EmitRawText() for assembly output. The hasRawTextSupport() check in AsmPrinter::EmitInlineAsm() has been replaced with MCAsmInfo::UseIntegratedAs which when true, causes the integrated assembler to parse inline assembly (even when emitting assembly output). UseIntegratedAs is set to true for targets that consider any failure to parse valid assembly to be a bug. Target specific subclasses generally enable the integrated assembler in their constructor. The default value can be overridden with -no-integrated-as. All tests that rely on inline assembly supporting invalid assembly (for example, those that use mnemonics such as 'foo' or 'hello world') have been updated to disable the integrated assembler. Reviewers: rafael Reviewed By: rafael CC: llvm-commits Differential Revision: http://llvm-reviews.chandlerc.com/D2686 llvm-svn: 201237
OpenPOWER on IntegriCloud