summaryrefslogtreecommitdiffstats
path: root/llvm
Commit message (Collapse)AuthorAgeFilesLines
...
* Revert "[llvm-readobj] Option to emit readelf like output"Hemant Kulkarni2016-02-107-458/+284
| | | | | | This reverts commit a58765909660a7195b32e0cc8c7476168b913750. llvm-svn: 260397
* [pdbdump] Fix test for different type ordering with DIA 2015Reid Kleckner2016-02-101-23/+30
| | | | llvm-svn: 260396
* [ThinLTO] Move global processing from Linker to TransformUtils (NFC)Teresa Johnson2016-02-106-298/+351
| | | | | | | | | | | | | | | Summary: As discussed on IRC, move the ThinLTOGlobalProcessing code out of the linker, and into TransformUtils. The name of the class is changed to FunctionImportGlobalProcessing. Reviewers: joker.eph, rafael Subscribers: joker.eph, llvm-commits Differential Revision: http://reviews.llvm.org/D17081 llvm-svn: 260395
* [PGO] coverage map bug with cov data produced for 32bit targetXinliang David Li2016-02-101-3/+3
| | | | | | | | Fix the result truncation bug: [PR26560] Test case is following (compiler-rt). llvm-svn: 260393
* [llvm-nm] Add -radix optionHemant Kulkarni2016-02-105-3/+302
| | | | | | Differential Revision: http://reviews.llvm.org/D16822 llvm-svn: 260392
* [llvm-readobj] Option to emit readelf like outputHemant Kulkarni2016-02-107-284/+458
| | | | | | | | | New option --elf-output-style=LLVM or GNU Enables -file-headers in readelf style when elf-output-style=GNU Differential revision: http://reviews.llvm.org/D14128 llvm-svn: 260391
* [SPARC] Repair floating-point condition encodings in assembly parser.James Y Knight2016-02-103-3/+28
| | | | | | | | | | | | | | | The encodings for floating point conditions A(lways) and N(ever) were incorrectly specified for the assembly parser, per Sparc manual v8 page 121. This change corrects that mistake. Also, strangely, all of the branch instructions already had MC test cases, except for the broken ones. Added the tests. Patch by Chris Dewhurst Differential Revision: http://reviews.llvm.org/D17074 llvm-svn: 260390
* Rename a member variable to be more accurate with how it is usedDaniel Berlin2016-02-102-8/+6
| | | | llvm-svn: 260389
* Constify two functions, make them accessible to unit testsDaniel Berlin2016-02-102-8/+16
| | | | llvm-svn: 260387
* Disable all llvm-config tests for now, will investigate laterEhsan Akhgari2016-02-101-0/+2
| | | | llvm-svn: 260386
* [PGO] Differentiate Clang instrumentation and IR level instrumentation profilesRong Xu2016-02-1025-14/+156
| | | | | | | | | | | | | | | | | | | | This patch uses one bit in profile version to differentiate Clang instrumentation and IR level instrumentation profiles. PGOInstrumenation generates a COMDAT variable __llvm_profile_raw_version so that the compiler runtime can set the right profile kind. For Maco-O platform, we generate the variable as linkonce_odr linkage as COMDAT is not supported. PGOInstrumenation now checks this bit to make sure it's an IR level instrumentation profile. The patch was submitted as r260164 but reverted due to a Darwin test breakage. Original Differential Revision: http://reviews.llvm.org/D15540 Differential Revision: http://reviews.llvm.org/D17020 llvm-svn: 260385
* [AArch64] This bit of logic is specific to pairing. NFC.Chad Rosier2016-02-101-8/+10
| | | | llvm-svn: 260383
* Fix VST_CODE_* bitcode id comments (NFC)Teresa Johnson2016-02-102-18/+18
| | | | llvm-svn: 260382
* [X86] Fix stack alignment for MCU target, by Anton Nadolskiy.Andrey Turetskiy2016-02-102-2/+54
| | | | | | | | This patch fixes stack alignments for MCU (should be aligned to 4 bytes). Differential Revision: http://reviews.llvm.org/D15646 llvm-svn: 260375
* [AVR] Add instruction definitionsDylan McKay2016-02-105-3/+2569
| | | | | | | | | | | | Summary: Add the AVR instruction tablegen definitions. Reviewers: stoklund, hfinkel, dsanders, arsenm, vkalintiris Subscribers: dylanmckay, agnat, rjordans, llvm-commits Differential Revision: http://reviews.llvm.org/D15703 llvm-svn: 260363
* [PGO] fix prof symbol lookup bugXinliang David Li2016-02-102-1/+7
| | | | | | | | | | | | Patch by Rong Xu The problem is exposed by intra-module indirect call promotion where prof symtab is created from module which does not contain all symbols from the program. With partial symtab, the result needs to be checked more strictly. llvm-svn: 260361
* X86: Remove useless semicolonJF Bastien2016-02-101-1/+1
| | | | llvm-svn: 260359
* llvm-config: Fix DLL prefix on cygming.NAKAMURA Takumi2016-02-101-1/+1
| | | | | | For example, LLVMSupport takes the form of LLVMSupport.dll, not libLLVMSupport.dll. llvm-svn: 260351
* llvm-config: Quick fix for cross compilation. Don't be confsed between host ↵NAKAMURA Takumi2016-02-101-1/+1
| | | | | | | and target. It has been there since r252532. FIXME: The clause may use conditions of host compiler, not HOST_TRIPLE. llvm-svn: 260343
* StructurizeCFG: Initialize SkipUniformRegions in the default constructorTom Stellard2016-02-101-1/+1
| | | | | | This should fix some random bot failures caused by r260336. llvm-svn: 260342
* Revert "Turn on LLVM_ENABLE_PLUGINS by default on Windows"Reid Kleckner2016-02-101-1/+1
| | | | | | This reverts r260262, it broke some LLVM tests (bugpoint). llvm-svn: 260339
* [Orc] Add lazy-JITting support for i386.Lang Hames2016-02-106-2/+187
| | | | | | | | | | | This patch adds a new class, OrcI386, which contains the hooks needed to support lazy-JITing on i386 (currently only for Pentium 2 or above, as the JIT re-entry code uses the FXSAVE/FXRSTOR instructions). Support for i386 is enabled in the LLI lazy JIT and the Orc C API, and regression and unit tests are enabled for this architecture. llvm-svn: 260338
* StructurizeCFG: Add an option for skipping regions with only uniform branchesTom Stellard2016-02-102-4/+42
| | | | | | | | | | | | | | Summary: Tests for this will be added once the AMDGPU backend enables this option. Reviewers: arsenm Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D16602 llvm-svn: 260336
* Add support for struct in C API testAmaury Sechet2016-02-104-78/+182
| | | | | | | | | | | | Summary: As per title. This also include extra support for insertvalue and extracvalue. Reviewers: bogner, chandlerc, echristo, dblaikie, joker.eph, Wallbraker Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D17055 llvm-svn: 260335
* Add binding for counting argument and find called value of call and invoke ↵Amaury Sechet2016-02-103-14/+35
| | | | | | | | | | | | instruction from the C API. Summary: As per title. This remove the need to rely on internal knowledge of call and invoke instruction to find called value and argument count. Reviewers: bogner, chandlerc, echristo, dblaikie, joker.eph, Wallbraker Differential Revision: http://reviews.llvm.org/D17054 llvm-svn: 260332
* ARM: improve documentation slightly.Tim Northover2016-02-091-13/+6
| | | | | | | | It seems the ARMv8 instruction set overview is no longer provided by ARM, so I've removed it. Since most of the other documents were the same I unified the two sections. llvm-svn: 260329
* [x86] convert masked load of exactly one element to scalar loadSanjay Patel2016-02-092-0/+158
| | | | | | | This is the load counterpart to the store optimization that was added in: http://reviews.llvm.org/rL260145 llvm-svn: 260325
* Split clone value and instruction in the echo C API testAmaury Sechet2016-02-091-73/+77
| | | | | | | | | | Summary: This is a bit of refactoring required to be able to generate instruction in forward basic block. This, for instance, is a requirement for phi in loops. Reviewers: bogner, chandlerc, echristo, dblaikie, joker.eph, Wallbraker Differential Revision: http://reviews.llvm.org/D17050 llvm-svn: 260324
* Add icmp and conditional branches in the C API echo test.Amaury Sechet2016-02-092-4/+52
| | | | | | | | | | | | | | | Summary: Improving coverage. Depends on D16912 . Reviewers: bogner, chandlerc, echristo, dblaikie, joker.eph, Wallbraker Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D16937 llvm-svn: 260321
* Add convergent-removing bits to FunctionAttrs pass.Justin Lebar2016-02-093-0/+160
| | | | | | | | | | | | | | | | | Summary: Remove the convergent attribute on any functions which provably do not contain or invoke any convergent functions. After this change, we'll be able to modify clang to conservatively add 'convergent' to all functions when compiling CUDA. Reviewers: jingyue, joker.eph Subscribers: llvm-commits, tra, jhen, hfinkel, resistor, chandlerc, arsenm Differential Revision: http://reviews.llvm.org/D17013 llvm-svn: 260319
* Update documentation about convergent attribute.Justin Lebar2016-02-091-4/+11
| | | | | | | | | | | | | | | Summary: Be more explicit about what 'convergent' means, and indicate that the compiler may remove the attribute from a function if it can prove that the function doesn't in fact execute any convergent ops. Reviewers: resistor, jingyue, joker.eph Subscribers: hfinkel, chandlerc, arsenm, jhen, tra, llvm-commits Differential Revision: http://reviews.llvm.org/D17012 llvm-svn: 260318
* Fix GCC build.Peter Collingbourne2016-02-091-0/+4
| | | | llvm-svn: 260317
* [CodeGen] Prefer "if (SDValue R = ...)" to "if (R.getNode())". NFCI.Ahmed Bougacha2016-02-0914-167/+98
| | | | llvm-svn: 260316
* [X86] Don't reuse an unrelated variable, create a new one. NFC.Ahmed Bougacha2016-02-091-26/+28
| | | | | | | Using Op makes it look like we're doing something with it. We're really not. llvm-svn: 260315
* [X86] Remove unnecessary assignment. NFC.Ahmed Bougacha2016-02-091-1/+0
| | | | llvm-svn: 260314
* Add C binding for AllocaInst::getAllocatedTypeAmaury Sechet2016-02-093-1/+26
| | | | | | | | | | | | | | | Summary: Comes with an awesome test. Depends on D16912 Reviewers: bogner, chandlerc, echristo, dblaikie, joker.eph, Wallbraker Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D16942 llvm-svn: 260313
* WholeProgramDevirt: introduce.Peter Collingbourne2016-02-0927-1/+2030
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This pass implements whole program optimization of virtual calls in cases where we know (via bitset information) that the list of callees is fixed. This includes the following: - Single implementation devirtualization: if a virtual call has a single possible callee, replace all calls with a direct call to that callee. - Virtual constant propagation: if the virtual function's return type is an integer <=64 bits and all possible callees are readnone, for each class and each list of constant arguments: evaluate the function, store the return value alongside the virtual table, and rewrite each virtual call as a load from the virtual table. - Uniform return value optimization: if the conditions for virtual constant propagation hold and each function returns the same constant value, replace each virtual call with that constant. - Unique return value optimization for i1 return values: if the conditions for virtual constant propagation hold and a single vtable's function returns 0, or a single vtable's function returns 1, replace each virtual call with a comparison of the vptr against that vtable's address. Differential Revision: http://reviews.llvm.org/D16795 llvm-svn: 260312
* Improve the C API echo test tool to emit basic block is the right order.Amaury Sechet2016-02-094-214/+277
| | | | | | | | | | | | Summary: As per title. Also add a facility method to get the name of a basic block from the C API. Reviewers: bogner, chandlerc, echristo, dblaikie, joker.eph, Wallbraker Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D16912 llvm-svn: 260309
* [mips] Extend MipsAsmParser class to handle %got(sym + const) expressionsSimon Atanasyan2016-02-092-0/+21
| | | | | | | | | Now the parser supports `%got(sym)` expressions only but `%got(sym + const)` variant is also valid and accepted by GAS. Differential Revision: http://reviews.llvm.org/D16885 llvm-svn: 260305
* [MemoryBuiltins] Fix an issue with hasNoAliasAttrSanjoy Das2016-02-091-1/+1
| | | | | | | | | | | | | | | | | | | | | | | Summary: `hasNoAliasAttr` is buggy: it checks to see if the called function has a `noalias` attribute, which is incorrect since functions are not even allowed to have the `noalias` attribute. The comment on its only caller, `llvm::isNoAliasFn`, makes it pretty clear that the intention to do the `noalias` check on the return value, and not the callee. Unfortunately I couldn't find a way to test this upstream -- fixing this does not change the observable behavior of any of the passes that use this. This is not very surprising, since `noalias` does not tell anything about the contents of the allocated memory (so, e.g., you still cannot fold loads). I'll be happy to be proven wrong though. Reviewers: chandlerc, reames Subscribers: mcrosier, llvm-commits Differential Revision: http://reviews.llvm.org/D17037 llvm-svn: 260298
* [Verifier] Add checks for masked.load and masked.store intrinsicsPhilip Reames2016-02-091-0/+38
| | | | | | While trying to track down what appears to be a LoopVectorizer bug, I noticed that we had no validation of the correctness of calls emitted to @llvm.masked.load and @llvm.masked.store. This meant malformed IR was showing up much much later than it should. Hopefully, having Verifier rules in place will make this easier to isolate. llvm-svn: 260296
* [SelectionDAG] make getMemBasePlusOffset() accessible; NFCISanjay Patel2016-02-093-51/+36
| | | | | | | | | I reinvented this functionality in http://reviews.llvm.org/D16828 because it was hidden away as a static function. The changes in x86 are not based on a complete audit. I suspect there are other possible uses there, and there are almost certainly more potential users in other targets. llvm-svn: 260295
* This brings back commit r259578.Rafael Espindola2016-02-093-0/+50
| | | | | | | But now it follows the llvm style, uses an early return and doesn't include a file named 1.o. llvm-svn: 260293
* Fix name style.Rafael Espindola2016-02-091-30/+30
| | | | | | Functions start with a lower case, variables with an upper case. llvm-svn: 260287
* Update comment style.Rafael Espindola2016-02-091-14/+14
| | | | llvm-svn: 260286
* Revert "Correct size calculations for ELF files"Rafael Espindola2016-02-093-46/+0
| | | | | | | | | This reverts commit r259578. There are enough issues with this small patch that it is better to revert and then commit a fixed version (will be committed shortly). llvm-svn: 260285
* [AArch64] This check is specific to merging instructions. NFC.Chad Rosier2016-02-091-4/+4
| | | | llvm-svn: 260283
* Remove system-libs.test for nowEhsan Akhgari2016-02-091-5/+0
| | | | | | | | This test fails in the ninja-x64-msvc-RA-centos6 builder, so the UNSUPPORTED: system-windows condition is insufficient. Removing it for now; I will investigate how this can be fixed later. llvm-svn: 260281
* Fix a test added in r260263Ehsan Akhgari2016-02-091-1/+1
| | | | llvm-svn: 260280
* [InstCombine][GC] Handle gc.relocations of vector typePhilip Reames2016-02-092-25/+40
| | | | | | | | We introduced gc.relocates of vector-of-pointer types a couple of weeks back. Somehow, I missed updating the InstCombine rule to account for this. If we hit this code path with a vector-of-pointers gc.relocate, we'd crash on a cast<PointerType>. I also took the chance to do a bit of code style cleanup. llvm-svn: 260279
OpenPOWER on IntegriCloud