summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* BPF: Use official ELF e_machine valueAlexei Starovoitov2016-07-158-1/+33
| | | | | | | | | The same value for EM_BPF is being propagated to glibc, elfutils, and binutils. Signed-off-by: Richard Henderson <rth@twiddle.net> Signed-off-by: Alexei Starovoitov <ast@kernel.org> llvm-svn: 275633
* Fix a typeo.George Burgess IV2016-07-151-1/+1
| | | | | | (obligatory s/typeo/typo) llvm-svn: 275632
* [lanai] Fix build by updating calls to getLoad & getStore.Jacques Pienaar2016-07-151-9/+7
| | | | | | rL275592 removed the boolean parameters of SelectionDAG::getLoad and getStore, updating Lanai backend's calls to these functions. llvm-svn: 275631
* [index] Create different USR if a property is a class property.Argyrios Kyrtzidis2016-07-154-7/+10
| | | | | | Avoids USR conflicts between class & instance properties of the same name. llvm-svn: 275630
* [pdb] Teach MsfBuilder and other classes about the Free Page Map.Zachary Turner2016-07-1512-40/+61
| | | | | | | | | | | | | | Block 1 and 2 of an MSF file are bit vectors that represent the list of blocks allocated and free in the file. We had been using these blocks to write stream data and other data, so we mark them as the free page map now. We don't yet serialize these pages to the disk, but at least we make a note of what it is, and avoid writing random data to them. Doing this also necessitated cleaning up some of the tests to be more general and hardcode fewer values, which is nice. llvm-svn: 275629
* [pdb] Round trip the NameMap data structure to YAML.Zachary Turner2016-07-1511-8/+121
| | | | llvm-svn: 275628
* [pdb] Use MsfBuilder to handle the writing PDBs.Zachary Turner2016-07-1526-238/+344
| | | | | | | | | | | | | | | Previously we would read a PDB, then write some of it back out, but write the directory, super block, and other pertinent metadata back out unchanged. This generates incorrect PDBs since the amount of data written was not always the same as the amount of data read. This patch changes things to use the newly introduced `MsfBuilder` class to write out a correct and accurate set of Msf metadata for the data *actually* written, which opens up the door for adding and removing type records, symbol records, and other types of data to an existing PDB. llvm-svn: 275627
* StructurizeCFG: Fix inverting constantexpr conditionsMatt Arsenault2016-07-152-8/+32
| | | | llvm-svn: 275626
* [Hexagon] Handle instruction latency for 0 or 2 cyclesKrzysztof Parzyszek2016-07-155-0/+227
| | | | | | | | | | | | | | | | | | | | | | | The Hexagon schedulers need to handle instructions with a latency of 0 or 2 more accurately. The problem, in v60, is that a dependence between two instructions with a 2 cycle latency can use a .cur version of the source to achieve a 0 cycle latency when the use is in the same packet. Any othe use, must be at least 2 packets later, or a stall occurs. In other words, the compiler does not want to schedule the dependent instructions 1 cycle later. To achieve this, the latency adjustment code allows only a single dependence to have a zero latency. All other instructions have the other value, which is typically 2 cycles. We use a heuristic to determine which instruction gets the 0 latency. The Hexagon machine scheduler was also changed to increase the cost associated with 0 latency dependences than can be scheduled in the same packet. Patch by Brendon Cahoon. llvm-svn: 275625
* Revert r275481, r275490. This broke modules bootstrap.Richard Smith2016-07-1510-171/+10
| | | | llvm-svn: 275624
* AMDGPU: Remove legacy ldexp builtinMatt Arsenault2016-07-154-47/+0
| | | | llvm-svn: 275623
* AMDGPU: Update for rsq intrinsic changesMatt Arsenault2016-07-154-38/+23
| | | | llvm-svn: 275622
* [sanitizers] add interceptor for memmem; add weak hooks for strncasecmp, ↵Kostya Serebryany2016-07-156-2/+169
| | | | | | strcasecmp, strstr, strcasestr, memmem llvm-svn: 275621
* AMDGPU: Remove brev intrinsicMatt Arsenault2016-07-153-16/+0
| | | | llvm-svn: 275620
* AMDGPU: Fix TargetPrefix for remaining r600 intrinsicsMatt Arsenault2016-07-1539-144/+146
| | | | llvm-svn: 275619
* AMDGPU: Remove AMDGPU.ldexpMatt Arsenault2016-07-153-32/+0
| | | | llvm-svn: 275618
* AMDGPU: Remove legacy rsq.clamped intrinsicMatt Arsenault2016-07-1512-115/+70
| | | | | | | | Mesa still has a use of llvm.AMDGPU.rsq.f64 remaining. Also fix mismatch with non-IEEE rsq selecting to IEEE rsq. llvm-svn: 275617
* AMDGPU/R600: Delete dead code.Matt Arsenault2016-07-152-58/+1
| | | | | | Dead or the same as the base implementation. llvm-svn: 275616
* DebugInfo: reorder some initializersSaleem Abdulrasool2016-07-151-2/+2
| | | | | | Fix a few initialization ordering warnings from gcc from `-Wreorder`. NFC. llvm-svn: 275615
* CodeGen: avoid emitting unnecessary CFISaleem Abdulrasool2016-07-153-8/+10
| | | | | | | | | | | | Remove unnecessary clutter in assembly output. When using SjLj EH, the CFI is not actually used for anything. Do not emit the CFI needlessly. The minor test adjustments are interesting. The prologue test was just overzealous matcching. The interesting case is the LSDA change. It was originally added to ensure that various compilations did not mangle the name (it explicitly checked the name!). However, subsequent cleanups made it more reliant on the CFI to find the name. Parse the generated code flow to generically find the label still. llvm-svn: 275614
* Make processInstruction from LCSSA.cpp externally available.Michael Zolotukhin2016-07-152-120/+140
| | | | | | | | | | | | | | | | Summary: When a pass tries to keep LCSSA form it's often convenient to be able to update LCSSA for a set of instructions rather than for the entire loop. This patch makes the processInstruction from LCSSA externally available under a name formLCSSAForInstruction. Reviewers: chandlerc, sanjoy, hfinkel Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D22378 llvm-svn: 275613
* Push alias-declarations and alias-template declarations into scope even ifRichard Smith2016-07-157-10/+21
| | | | | | | | they're redeclarations. This is necessary in order for name lookup to correctly find the most recent declaration of the name (which affects default template argument lookup and cross-module merging, among other things). llvm-svn: 275612
* [pdb] Introduce MsfBuilder for laying out PDB files.Zachary Turner2016-07-159-17/+854
| | | | | | | Reviewed by: ruiu Differential Revision: https://reviews.llvm.org/D22308 llvm-svn: 275611
* Sema: support __declspec(dll*) on ObjC interfacesSaleem Abdulrasool2016-07-1513-30/+222
| | | | | | | | | | | Extend the __declspec(dll*) attribute to cover ObjC interfaces. This was requested by Microsoft for their ObjC support. Cover both import and export. This only adds the semantic analysis portion of the support, code-generation still remains outstanding. Add some basic initial documentation on the attributes that were previously empty. Tweak the previous tests to use the relative expected-warnings to make the tests easier to read. llvm-svn: 275610
* [test/objcmt] Add a follow-up test case for r275600.Argyrios Kyrtzidis2016-07-155-2/+12
| | | | llvm-svn: 275609
* ELF: Include filenames in error messages.Rui Ueyama2016-07-153-22/+30
| | | | llvm-svn: 275608
* Teach fast isel about the win64 calling convention.Nico Weber2016-07-153-8/+10
| | | | | | | | | | | | | | | This mostly just works. Vectorcall rets are still not supported. The win64_eh test change is because fast isel doesn't use rsi for temporary computations, so it doesn't need to be pushed. The test case I'm changing was originally added to test pushes, but by now there are other test cases in that file exercising that code path. https://reviews.llvm.org/D22422 llvm-svn: 275607
* [Hexagon] Make MI scheduler check for stalls in previous packet on v60Krzysztof Parzyszek2016-07-152-3/+41
| | | | | | Patch by Ikhlas Ajbar. llvm-svn: 275606
* Remove variables. NFC.Rui Ueyama2016-07-151-6/+4
| | | | llvm-svn: 275605
* [CFLAA] Add attributes handling for CFLAnders.George Burgess IV2016-07-153-9/+282
| | | | | | | | | | | | This patch adds proper handling of stratified attributes into our anders-style CFLAA implementation. It also comes bundled with more CFLAnders tests. :) Patch by Jia Chen. Differential Revision: https://reviews.llvm.org/D22325 llvm-svn: 275604
* [PowerPC] Set kill flag for scratch register when spilling the link registerNemanja Ivanovic2016-07-151-1/+1
| | | | | | This fixes PR 28526. llvm-svn: 275603
* [CFLAA] Add an initial CFLAnders implementation.George Burgess IV2016-07-158-37/+629
| | | | | | | | | | | | | This adds an incomplete anders-style implementation for CFLAA. It's incomplete in that it's missing interprocedural analysis, attrs handling, etc. and that it needs more tests. More tests and features will be added in future commits. Patch by Jia Chen. Differential Revision: https://reviews.llvm.org/D22291 llvm-svn: 275602
* Fix calls to SelectionDAG::getStoreDerek Schuff2016-07-151-2/+2
| | | | | | It was refactored in r275592. NFC llvm-svn: 275601
* [objcmt] Fix a buffer overflow crash than can occur while modernizing enums.Argyrios Kyrtzidis2016-07-154-28/+46
| | | | | | | | Note that due to the nature of the crash it requires libgmalloc or asan for it to crash consistently. rdar://19932927 llvm-svn: 275600
* Revert "[AMDGPU] Add metadata for runtime"Vitaly Buka2016-07-154-1219/+0
| | | | | | This reverts commit r275566. llvm-svn: 275599
* [Hexagon] Replace postprocessDAG with a more elaborate DAG mutationKrzysztof Parzyszek2016-07-151-10/+76
| | | | llvm-svn: 275598
* [Profile] instroduce portability macro for dir separator(sXinliang David Li2016-07-153-4/+24
| | | | llvm-svn: 275597
* [ReassociateGEP] Update tests to allow missing "inbounds" on certain GEPs.Jingyue Wu2016-07-152-9/+9
| | | | | | | | With r275532 fixing miscompilation of GVN, "inbounds" on certain GEPs in these tests cannot be preserved any more. Left a TODO in the tests for future reference. llvm-svn: 275596
* [MBP] Clean up of the comments, and a first attempt to better describe a partSjoerd Meijer2016-07-151-28/+49
| | | | | | | | of the algorithm. Differential Revision: https://reviews.llvm.org/D22364 llvm-svn: 275595
* add tests for associative ops blocked by a castSanjay Patel2016-07-151-0/+82
| | | | | | | These are more generalized versions of the cases added in r275302 and r275297. llvm-svn: 275594
* [SCCP] Merge two conditions into one. NFCI.Davide Italiano2016-07-151-3/+1
| | | | llvm-svn: 275593
* [SelectionDAG] Get rid of bool parameters in SelectionDAG::getLoad, ↵Justin Lebar2016-07-1533-1659/+1217
| | | | | | | | | | | | | | | | | | | | | | | getStore, and friends. Summary: Instead, we take a single flags arg (a bitset). Also add a default 0 alignment, and change the order of arguments so the alignment comes before the flags. This greatly simplifies many callsites, and fixes a bug in AMDGPUISelLowering, wherein the order of the args to getLoad was inverted. It also greatly simplifies the process of adding another flag to getLoad. Reviewers: chandlerc, tstellarAMD Subscribers: jholewinski, arsenm, jyknight, dsanders, nemanjai, llvm-commits Differential Revision: http://reviews.llvm.org/D22249 llvm-svn: 275592
* [CodeGen] Take a MachineMemOperand::Flags in ↵Justin Lebar2016-07-1519-48/+45
| | | | | | | | | | | | | | | | | MachineFunction::getMachineMemOperand. Summary: Previously we took an unsigned. Hooray for type-safety. Reviewers: chandlerc Subscribers: dsanders, llvm-commits Differential Revision: http://reviews.llvm.org/D22282 llvm-svn: 275591
* [AST] Keep track of the left brace source location of a tag decl.Argyrios Kyrtzidis2016-07-1513-27/+25
| | | | | | This is useful for source modification tools. There will be a follow-up commit using it. llvm-svn: 275590
* [objcmt] Don't add an #import of Foundation unnecessarily, if the NS_ENUM ↵Argyrios Kyrtzidis2016-07-152-3/+5
| | | | | | macro is already defined. llvm-svn: 275589
* [PGO] IRPGO pre-cleanup pass changesRong Xu2016-07-152-0/+44
| | | | | | | | | | | | | | This patch adds a selected set of cleanup passes including a pre-inline pass before LLVM IR PGO instrumentation. The inline is only intended to apply those obvious/trivial ones before instrumentation so that much less instrumentation is needed to get better profiling information. This will drastically improve the instrumented code performance for large C++ applications. Another benefit is the context sensitive counts that can potentially improve the PGO optimization. Differential Revision: http://reviews.llvm.org/D21405 llvm-svn: 275588
* fix documentation comments; NFCSanjay Patel2016-07-151-71/+37
| | | | llvm-svn: 275587
* [Hexagon] Add a scheduling DAG mutationKrzysztof Parzyszek2016-07-154-1/+68
| | | | | | | - Remove output dependencies on USR_OVF register. - Update chain edge latencies between v60 vector loads/stores. llvm-svn: 275586
* [compiler-rt] Fix 64-bits exception handlers in ASAN 64-bits runtimeEtienne Bergeron2016-07-152-5/+21
| | | | | | | | | | | | | | Summary: This is adding the appropriate suport for exception handling for 64-bits ASAN on windows. Reviewers: rnk Subscribers: kubabrecka, llvm-commits, wang0109, chrisha Differential Revision: https://reviews.llvm.org/D22395 llvm-svn: 275585
* [compiler-rt] Fix incorrect handling of indirect load.Etienne Bergeron2016-07-151-15/+3
| | | | | | | | | | | | | | | | | | | | | | Summary: Indirect load are relative offset from RIP. The current trampoline implementation is incorrectly copying these instructions which make some unittests crashing. This patch is not fixing the unittests but it's fixing the crashes. The functions are no longer hooked. Patches will come soon to fix these unittests. Reviewers: rnk Subscribers: llvm-commits, wang0109, chrisha Differential Revision: https://reviews.llvm.org/D22410 llvm-svn: 275584
OpenPOWER on IntegriCloud