summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [x86] Fix the test to actually test things for the CPU names, add theChandler Carruth2014-12-092-32/+32
| | | | | | | | | | | | | missing barcelona CPU which that test uncovered, and remove the 32-bit x86 CPUs which I really wasn't prepared to audit and test thoroughly. If anyone wants to clean up the 32-bit only x86 CPUs, go for it. Also, if anyone else wants to try to de-duplicate the AMD CPUs, that'd be cool, but from the looks of it wouldn't save as much as it did for the Intel CPUs. llvm-svn: 223774
* Removing an unused variable to silence a -Wunused-but-set-variable warning. NFC.Aaron Ballman2014-12-091-2/+0
| | | | llvm-svn: 223773
* Fix modified immediate bug reported by MC Hammer.Asiri Rathnayake2014-12-092-15/+13
| | | | | | | | | | | | | Instructions of the form [ADD Rd, pc, #imm] are manually aliased in processInstruction() to use ADR. To accomodate this, mod_imm handling had to be tweaked a bit. Turns out it was the manual aliasing that must be tweaked to accommodate mod_imms instead. More information about the parsed instruction is available at the point where processInstruction() is invoked, which makes it easier to detect a mod_imm at that point rather than trying to detect a potential alias when a mod_imm is being prepped. Added a test case and fixed some white spaces as well. llvm-svn: 223772
* [clang-tidy] Extended the example check, added a fix-it, etc.Alexander Kornienko2014-12-091-12/+23
| | | | llvm-svn: 223771
* [x86] Add a test for the CPU names that should have been in r223769.Chandler Carruth2014-12-091-0/+32
| | | | llvm-svn: 223770
* [x86] Bring some sanity to the x86 CPU processor definitions.Chandler Carruth2014-12-091-61/+139
| | | | | | | | | | | | | | | | | | Notably, this adds simple micro-architecture names for the Intel CPU variants, and defines the old 'core'-based names as aliases. GCC has started to simplify their documented interface to use these names as well, so it seems like we can start to converge on a consistent pattern. I'd appreciate Intel double checking the entries that aren't yet documented widely, especially Atom (Bonnell and Silvermont), Knights Landing, and Skylake. But this change shouldn't break any existing users. Also, ran clang-format to re-format this code and it actually worked (modulo a tiny bug) so hopefully we can start to stop thinking about formatting this stuff. llvm-svn: 223769
* Removal Of Duplicate Test Cases and Addition Of Missing Check StatementsSonam Kumari2014-12-091-21/+15
| | | | llvm-svn: 223768
* [test/Transforms/InstCombine/shift.ll] Removed duplicate test cases. NFC.Ankur Garg2014-12-091-35/+17
| | | | | | | | | | | Removed some duplicate test cases from the file /test/Transforms/InstCombine/shift.ll. test54 and test57 were duplicates of each other. test55 and test58 were duplicates of each other. (Removed test57 and test58) llvm-svn: 223767
* clang-tidy: Add a basic python script to generate checks.Daniel Jasper2014-12-091-0/+214
| | | | | | | | There are still a vast range of improvements that can be done to this, but it seems like an ok initial version. Suggestions or patches are highly welcome. llvm-svn: 223766
* Improve emacs coding styleWill Newton2014-12-091-13/+8
| | | | | | | | | | | | | Remove setting of default style, this way is not recommended and means that all the settings have to be duplicated to demonstrate the c-add-style method which is a much better way of doing it. Remove the modified date as it is better stored in SVN. Tweak a few style parameters to make them conform to the actual LLVM style. llvm-svn: 223765
* Teach instcombine to canonicalize "element extraction" from a load of anChandler Carruth2014-12-092-41/+559
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | integer and "element insertion" into a store of an integer into actual element extraction, element insertion, and vector loads and stores. Previously various parts of LLVM (including instcombine itself) would introduce integer loads and stores into the code as a way of opaquely loading and storing "bits". In some cases (such as a memcpy of std::complex<float> object) we will eventually end up using those bits in non-integer types. In order for SROA to effectively promote the allocas involved, it splits these "store a bag of bits" integer loads and stores up into the constituent parts. However, for non-alloca loads and tsores which remain, it uses integer math to recombine the values into a large integer to load or store. All of this would be "fine", except that it forces LLVM to go through integer math to combine and split up values. While this makes perfect sense for integers (and in fact is critical for bitfields to end up lowering efficiently) it is *terrible* for non-integer types, especially floating point types. We have a much more canonical way of representing the act of concatenating the bits of two SSA values in LLVM: a vector and insertelement. This patch teaching InstCombine to use this representation. With this patch applied, LLVM will no longer introduce integer math into the critical path of every loop over std::complex<float> operations such as those that make up the hot path of ... oh, most HPC code, Eigen, and any other heavy linear algebra library. For the record, I looked *extensively* at fixing this in other parts of the compiler, but it just doesn't work: - We really do want to canonicalize memcpy and other bit-motion to integer loads and stores. SSA values are tremendously more powerful than "copy" intrinsics. Not doing this regresses massive amounts of LLVM's scalar optimizer. - We really do need to split up integer loads and stores of this form in SROA or every memcpy of a trivially copyable struct will prevent SSA formation of the members of that struct. It essentially turns off SROA. - The closest alternative is to actually split the loads and stores when partitioning with SROA, but this has all of the downsides historically discussed of splitting up loads and stores -- the wide-store information is fundamentally lost. We would also see performance regressions for bitfield-heavy code and other places where the integers aren't really intended to be split without seemingly arbitrary logic to treat integers totally differently. - We *can* effectively fix this in instcombine, so it isn't that hard of a choice to make IMO. Differential Revision: http://reviews.llvm.org/D6548 llvm-svn: 223764
* Skip declarations in the case of functions.Michael Ilseman2014-12-091-0/+3
| | | | | | | | This is a revert of r223521 in spirit, if not in content. I am not sure why declarations ended up in LazilyLinkGlobalValues in the first place; that will take some more investigation. llvm-svn: 223763
* Use range-based for loops. NFC.Craig Topper2014-12-092-35/+24
| | | | llvm-svn: 223762
* AVX-512: Added some comments to ERI scalar intrinsics.Elena Demikhovsky2014-12-092-6/+17
| | | | | | No functional change. llvm-svn: 223761
* Fix a few instances found in SelectionDAG where we were not handling F16 at ↵Owen Anderson2014-12-092-3/+5
| | | | | | parity with F32 and F64. llvm-svn: 223760
* Revert "[modules] Add experimental -fmodule-map-file-home-is-cwd flag to -cc1."Duncan P. N. Exon Smith2014-12-0913-97/+28
| | | | | | | | | | | | | This reverts commit r223753. It broke the Green Dragon build for a few hours: http://lab.llvm.org:8080/green/job/clang-stage1-cmake-RA-incremental_build/2259/ http://lab.llvm.org:8080/green/job/clang-stage1-cmake-RA-incremental_build/2259/consoleFull#43901905849ba4694-19c4-4d7e-bec5-911270d8a58c I suspect `clang-tools-extra` just needs a follow-up for an API change, but I'm not the right one to look into it. llvm-svn: 223759
* test commit (spelling correction)Mohit K. Bhakkad2014-12-091-1/+1
| | | | llvm-svn: 223758
* [X86] Convert esp-relative movs of function arguments into pushes, step 1Michael Kuperstein2014-12-098-13/+231
| | | | | | | | | | | This handles the simplest case for mov -> push conversion: 1. x86-32 calling convention, everything is passed through the stack. 2. There is no reserved call frame. 3. Only registers or immediates are pushed, no attempt to combine a mem-reg-mem sequence into a single PUSHmm. Differential Revision: http://reviews.llvm.org/D6503 llvm-svn: 223757
* Reland r223754David Majnemer2014-12-092-6/+13
| | | | | | | The commit is identical except a reference to `GV' should have been to `GVal'. llvm-svn: 223756
* Revert "AsmParser: Reject invalid mismatch between forward ref and def"David Majnemer2014-12-092-12/+5
| | | | | | This reverts commit r223754. I've upset the buildbots. llvm-svn: 223755
* AsmParser: Reject invalid mismatch between forward ref and defDavid Majnemer2014-12-092-5/+12
| | | | | | | | | Don't assume that the forward referenced entity was of the same global-kind as the new entity. This fixes PR21779. llvm-svn: 223754
* [modules] Add experimental -fmodule-map-file-home-is-cwd flag to -cc1.Richard Smith2014-12-0913-28/+97
| | | | | | | | | | | | | For files named by -fmodule-map-file=, and files found by 'extern module' directives, this flag specifies that we should resolve filenames relative to the current working directory rather than relative to the directory in which the module map file resides. This is aimed at fixing path handling, in particular for relative -I paths, when building modules that represent components of the current project (rather than libraries installed on the current system, which the current project has as dependencies, where we'd typically expect the module map files to be looked up implicitly). llvm-svn: 223753
* Implement remote process listing in Linux platform.Stephane Sezer2014-12-092-0/+23
| | | | | | | | | | | | | | Summary: Test Plan: Connect to a remote implementing the platform protocol (ds2 in this case), run `platform process list` and see processes being displayed. Reviewers: vharron, tfiala, clayborg Subscribers: lldb-commits Differential Revision: http://reviews.llvm.org/D6571 llvm-svn: 223752
* Restore r223709 as it was meant to be, and enable FeatureP8Vector for P8Bill Schmidt2014-12-091-2/+2
| | | | llvm-svn: 223751
* Handle newlines on Windows correctly.Nikola Smiljanic2014-12-095-1/+26
| | | | llvm-svn: 223750
* Add Linux support for HostInfo::GetOSBuildString and ↵Oleksiy Vyalov2014-12-093-2/+31
| | | | | | HostInfo::GetOSKernelDescription. llvm-svn: 223737
* MS ABI: Add another test for PR20017David Majnemer2014-12-091-0/+10
| | | | llvm-svn: 223733
* [tsan] remove TSAN_GO in favor of SANITIZER_GOKostya Serebryany2014-12-0918-94/+94
| | | | llvm-svn: 223732
* Simple test for file & line dummy breakpoints.Jim Ingham2014-12-093-0/+98
| | | | llvm-svn: 223731
* [asan] move GetRSS from tsan to sanitizer_commonKostya Serebryany2014-12-098-36/+37
| | | | llvm-svn: 223730
* Revert r223709, "[PowerPC]Activate FeatureVSX for the Power target", to ↵NAKAMURA Takumi2014-12-091-3/+5
| | | | | | | | | | | | | | | | | | | unbreak bots. CodeGen/PowerPC/vsx-p8.ll was failing. '+power8-vector' is not a recognized feature for this target (ignoring feature) llvm/test/CodeGen/PowerPC/vsx-p8.ll:33:14: error: expected string not found in input ; CHECK-REG: lxvw4x 34, 0, 3 ^ <stdin>:50:2: note: scanning from here .align 3 ^ <stdin>:61:2: note: possible intended match here lvx 3, 0, 3 ^ llvm-svn: 223729
* Optimize comparisons to empty string.Peter Collingbourne2014-12-091-0/+16
| | | | | | | | Geo-mean performance improvement of 0.2% (-0.3% - 0.9% @ 95% CI). Differential Revision: http://reviews.llvm.org/D6569 llvm-svn: 223728
* Handle early-clobber registers in the aggressive anti-dep breakerHal Finkel2014-12-092-0/+62
| | | | | | | | | | | | The aggressive anti-dep breaker, used by the PowerPC backend during post-RA scheduling (but is available to all targets), did not handle early-clobber MI operands (at all). When constructing the list of available registers for the replacement of some def operand, check the using instructions, and remove registers assigned to early-clobbered defs from the set. Fixes PR21452. llvm-svn: 223727
* DebugInfo: Correctly identify the location of C++ member initializer list ↵David Blaikie2014-12-095-40/+55
| | | | | | | | | | | | | elements This particularly helps the fidelity of ASan reports (which can occur even in these examples - if, for example, one uses placement new over a buffer of insufficient size - now ASan will correctly identify which member's initialization went over the end of the buffer). This doesn't cover all types of members - more coming. llvm-svn: 223726
* Add argument variable support to the debug info tutorialEric Christopher2014-12-091-9/+43
| | | | | | | and rearrange the prologue source location hack to immediately after it. llvm-svn: 223725
* [modules] If the same .pcm file is imported via two different paths, don'tRichard Smith2014-12-092-1/+52
| | | | | | complain that the contained modules are defined twice. llvm-svn: 223724
* Revert "Driver: Objective-C should respect -fno-exceptions"David Majnemer2014-12-094-22/+46
| | | | | | | | This reverts commit r223455. It's been succesfully argued that -fexceptions (at the driver level) is a misnomer and has little to do with -fobjc-exceptions. llvm-svn: 223723
* R600/SI: Set MayStore = 0 on MUBUF loadsTom Stellard2014-12-091-1/+1
| | | | llvm-svn: 223722
* R600/SI: Move setting of the lds bit to the base MUBUF classTom Stellard2014-12-091-6/+9
| | | | llvm-svn: 223721
* [Hexagon] Removing old def versions and replacing usages with versions that ↵Colin LeMahieu2014-12-085-182/+40
| | | | | | have encodings. llvm-svn: 223720
* MISched: Fix moving stores across barriersTom Stellard2014-12-082-6/+49
| | | | | | | | This fixes an issue with ScheduleDAGInstrs::buildSchedGraph where stores without an underlying object would not be added as a predecessor to the current BarrierChain. llvm-svn: 223717
* Update bogus file permissions.Alexey Samsonov2014-12-081-0/+0
| | | | | | Suggested in http://reviews.llvm.org/D6547. llvm-svn: 223715
* Add a test for MS-ABI this adjustment for virtual calls to member operators.Nico Weber2014-12-081-6/+45
| | | | | | | They too were fixed by r223185, despite the commit message saying otherwise. Add a test that makes sure they don't regress. llvm-svn: 223714
* Add the ability for an SBValue to create a persisted version of itself.Enrico Granata2014-12-0812-6/+192
| | | | | | | | | | | | Such a persisted version is equivalent to evaluating the value via the expression evaluator, and holding on to the $n result of the expression, except this API can be used on SBValues that do not obviously come from an expression (e.g. are the result of a memory lookup) Expose this via SBValue::Persist() in our public API layer, and ValueObject::Persist() in the lldb_private layer Includes testcase Fixes rdar://19136664 llvm-svn: 223711
* [Hexagon] Adding any8, all8, and/or/xor/andn/orn/not predicate register ↵Colin LeMahieu2014-12-083-0/+106
| | | | | | forms, mask, and vitpack instructions and patterns. llvm-svn: 223710
* [PowerPC]Activate FeatureVSX for the Power targetBill Seurer2014-12-081-5/+3
| | | | | | | | This change activates FeatureVSX for Power 7 and Power 8 in PPC.td. http://reviews.llvm.org/D6570 llvm-svn: 223709
* [PowerPC] Don't use a non-allocatable register to implement the 'cc' aliasHal Finkel2014-12-084-9/+349
| | | | | | | | | | | | | | | | GCC accepts 'cc' as an alias for 'cr0', and we need to do the same when processing inline asm constraints. This had previously been implemented using a non-allocatable register, named 'cc', that was listed as an alias of 'cr0', but the infrastructure does not seem to support this properly (neither the register allocator nor the scheduler properly accounts for the alias). Instead, we can just process this as a naming alias inside of the inline asm constraint-processing code, so we'll do that instead. There are two regression tests, one where the post-RA scheduler did the wrong thing with the non-allocatable alias, and one where the register allocator did the wrong thing. Fixes PR21742. llvm-svn: 223708
* Handle possible TypoExprs in member initializers.Kaelyn Takata2014-12-082-0/+12
| | | | | | | Includes a new test case since none of the existing tests were hitting this code path. llvm-svn: 223705
* [Hexagon] Fixing broken test.Colin LeMahieu2014-12-081-1/+1
| | | | llvm-svn: 223704
* [Hexagon] Adding xtype doubleword add, sub, and, or, xor and patterns.Colin LeMahieu2014-12-082-46/+60
| | | | llvm-svn: 223702
OpenPOWER on IntegriCloud