summaryrefslogtreecommitdiffstats
path: root/llvm
Commit message (Collapse)AuthorAgeFilesLines
* SampleProfile.cpp: Fix take #2. The issue was abuse of StringRef here.NAKAMURA Takumi2014-03-151-2/+4
| | | | llvm-svn: 203996
* SampleProfile.cpp: Quick fix to r203976 about abuse of Twine. The life of ↵NAKAMURA Takumi2014-03-151-5/+3
| | | | | | | Twine was too short. FIXME: DiagnosticInfoSampleProfile should not hold Twine&. llvm-svn: 203990
* R600: Remove unnecessary attempt to zext a pointer.Matt Arsenault2014-03-151-3/+6
| | | | | | Private pointers are now always 32-bits. llvm-svn: 203989
* R600: Code cleanup.Matt Arsenault2014-03-151-11/+12
| | | | | | | Use sign_extend_inreg and getZeroExtendInReg instead of using the bit operations they expand into. llvm-svn: 203988
* Object/COFF: change data type of SymbolNumber from int16 to uint16.Rui Ueyama2014-03-155-6/+8
| | | | | | | | | | | | Microsoft PE/COFF Spec clearly states that the field is of signed interger type. However, in reality, it's unsigned. If cl.exe needs to create a large number of sections for COMDAT sections, it will just create more than 32768 sections. Handling large section number as negative number is not correct. I think this is a spec bug. Differential Revision: http://llvm-reviews.chandlerc.com/D3088 llvm-svn: 203986
* Debug info: Unique types before emitting them to DWARF, where applicable.Adrian Prantl2014-03-142-0/+7
| | | | llvm-svn: 203983
* Debug Info: Fix LTO type uniquing for C++ member declarationsAdrian Prantl2014-03-146-1/+233
| | | | | | | | | | | | | | | | based on the ODR. This adds an OdrMemberMap to DwarfDebug which is used to unique C++ member function declarations based on the unique identifier of their containing class and their mangled name. We can't use the usual DIRef mechanism here because DIScopes are indexed using their entire MDNode, including decl_file and decl_line, which need not be unique (see testcase). Prior to this change multiple redundant member function declarations would end up in the same uniqued DW_TAG_class_type. llvm-svn: 203982
* Re-add checks that were in this testcase before it was converted to dwarfdump.Adrian Prantl2014-03-141-0/+6
| | | | llvm-svn: 203981
* typoAdrian Prantl2014-03-141-1/+1
| | | | llvm-svn: 203980
* MC: don't create a backtrace for diagnostics.Jim Grosbach2014-03-141-1/+1
| | | | | | | | | | | For better or worse, this is currently the normal error reporting path when dealing with backend errors from inline assembly. It's not just internal compiler issues that come through here, so we shouldn't be creating a backtrace on this path. rdar://16329947 llvm-svn: 203979
* Re-format SampleProfile.cpp with clang-format. No functional changes.Diego Novillo2014-03-141-2/+2
| | | | llvm-svn: 203977
* Use DiagnosticInfo facility.Diego Novillo2014-03-144-21/+103
| | | | | | | | | | | | | | | | | | Summary: The sample profiler pass emits several error messages. Instead of just aborting the compiler with report_fatal_error, we can emit better messages using DiagnosticInfo. This adds a new sub-class of DiagnosticInfo to handle the sample profiler. Reviewers: chandlerc, qcolombet CC: llvm-commits Differential Revision: http://llvm-reviews.chandlerc.com/D3086 llvm-svn: 203976
* Remove command line option for CU hashing. This is on by default now.Eric Christopher2014-03-143-12/+4
| | | | | | Fix up testcases and use of flag. llvm-svn: 203973
* Make the arbitrary section name be something mach-o compatible.Eric Christopher2014-03-141-1/+1
| | | | llvm-svn: 203972
* If we see that we're emitting code for a function that doesn't haveEric Christopher2014-03-142-1/+59
| | | | | | | | any lexical scopes then go ahead and turn on DW_AT_ranges for the compile unit since we would be claiming to describe in the CU a range for which we don't have information in the CU otherwise. llvm-svn: 203969
* Remove the -generate-dwarf-cu-ranges flag.Eric Christopher2014-03-143-23/+17
| | | | | | | Rewrite a couple of testcases to cover areas that would be normally by turning it on into testcases that will follow the logic. llvm-svn: 203968
* MCDwarf: Initialize MCLineTableHeader::LabelDavid Blaikie2014-03-141-0/+1
| | | | | | | | | | | | This sometimes remains null into MCLineTableHeader::Emit where we conditionally construct a label if one isn't provided for us. We need it to remain null (rather than just always constructing the label) so we can identify unused line tables... which is a bit weird and maybe we can do away with that logic one day (& on that day we can always construct the label up-front and just have compilation units query the line table for its label, etc) llvm-svn: 203967
* MCContext: Remove redundant assignmentDavid Blaikie2014-03-141-2/+0
| | | | | | | The member variable is not initialized in the ctor so it's already empty. No need to empty it again. llvm-svn: 203963
* Correctly handle an ELF symbol defined with "a = b + expr".Rafael Espindola2014-03-144-37/+130
| | | | | | | | | We were marking the symbol as absolute instead of computing b's offset + the expression value. This fixes pr19126. llvm-svn: 203962
* Remove unnecessary StringRef::str() call where an implicit conversion works ↵David Blaikie2014-03-141-1/+1
| | | | | | just fine. llvm-svn: 203960
* DwarfDebug: Remove some needless recursion.David Blaikie2014-03-141-2/+4
| | | | llvm-svn: 203946
* x86: Add missing break to getCallPreservedMask()Duncan P. N. Exon Smith2014-03-141-0/+1
| | | | | | | | | | | | This change brings getCallPreservedMask()'s logic in line with getCalleeSavedRegs(). While this changes the control flow slightly, the change is not currently observable. is64Bit must be false to get to the accidental fallthrough, but the case that we fall into (coldcc) does nothing unless is64Bit is true. llvm-svn: 203943
* x86: NFC: Make getCallPreservedMask() more similar to getCalleeSavedRegs()Duncan P. N. Exon Smith2014-03-141-4/+6
| | | | | | | Changing order of checks in getCallPreservedMask() to match getCalleeSavedRegs() so that the logic is easier to compare. llvm-svn: 203939
* [docs] Add links to XMOS XCore documentation.Richard Osborne2014-03-141-0/+6
| | | | | | | | | | Summary: Add links to XCore ISA and ABI documents. CC: llvm-commits, rafael Differential Revision: http://llvm-reviews.chandlerc.com/D2981 llvm-svn: 203936
* x86: getCalleeSavedRegs() would crash on 0 (so don't default to it)Duncan P. N. Exon Smith2014-03-142-1/+2
| | | | | | | The current logic assumes that MF is not 0. Assert that it isn't, and remove the default of 0 from the header. llvm-svn: 203934
* Fix a bug introduced during the transition to PathV2.Rafael Espindola2014-03-141-1/+1
| | | | | | | | | sys::fs::createUniqueFile returns an absolute path, so MakeSharedObject does too and we don't need to add a './' prefix. Patch by Jon McLachlan. llvm-svn: 203931
* Delete unused ObjectFile::{begin,end}_symbols()Alexey Samsonov2014-03-141-17/+0
| | | | llvm-svn: 203928
* [C++11] Introduce SectionRef::relocations() to use range-based loopsAlexey Samsonov2014-03-149-90/+77
| | | | | | | | | | | | Reviewers: rafael Reviewed By: rafael CC: llvm-commits Differential Revision: http://llvm-reviews.chandlerc.com/D3077 llvm-svn: 203927
* Separate out MVT in a separate header file: MachineValueType.hPatrik Hagglund2014-03-142-558/+581
| | | | | | | | | | The idea behind this split of ValueTypes.h, is to make it easier to ensure that stuff after type legalization only use MVT (rather than EVT), by watching include dependencies. Reviewed By: Tim Northover llvm-svn: 203926
* [ppc64] Avoid copy relocs in named rodata sectionsUlrich Weigand2014-03-142-13/+20
| | | | | | | | | | | | | | Commit r181723 introduced code to avoid placing initialized variables needing relocations into the .rodata section, which avoid copy relocs that do not work as expected on ppc64 function references. The same treatment is also needed for *named* .rodata.XXX sections. This patch changes PPC64LinuxTargetObjectFile::SelectSectionForGlobal to modify "Kind" *before* calling the default SelectSectionForGlobal routine, instead of first calling the default routine and then just checking for the (main) .rodata section afterwards. llvm-svn: 203921
* [ASan] Fix https://code.google.com/p/address-sanitizer/issues/detail?id=274Alexander Potapenko2014-03-141-3/+9
| | | | | | | by ignoring globals from __TEXT,__cstring,cstring_literals during instrumenation. Add a regression test. llvm-svn: 203916
* Use ctor instead of initializer list to appease Windows buildbotsAlexey Samsonov2014-03-142-1/+2
| | | | llvm-svn: 203915
* Use temporary instead of a local variable hereAlexey Samsonov2014-03-141-2/+1
| | | | llvm-svn: 203914
* Generalise assembly tests to not rely on anonymous symbol namesOliver Stannard2014-03-142-44/+44
| | | | llvm-svn: 203909
* AddressSanitizer instrumentation for MOV and MOVAPS.Evgeniy Stepanov2014-03-147-3/+547
| | | | | | | | This is an initial version of *Sanitizer instrumentation of assembly code. Patch by Yuri Gorshenin. llvm-svn: 203908
* MergeFunctions, cmpType: fixed variable names from XXTy1 and XXTy2 to XXTyL ↵Stepan Dyatkovskiy2014-03-141-29/+29
| | | | | | and XXTyR. llvm-svn: 203907
* MergeFunctions, cmpType: Fixed comments wrapping.Stepan Dyatkovskiy2014-03-141-1/+2
| | | | llvm-svn: 203905
* [yaml2obj][ELF] Use range-based for loops.Simon Atanasyan2014-03-141-4/+2
| | | | llvm-svn: 203900
* [yaml2obj][ELF] Refer to a section in the error message by its name notSimon Atanasyan2014-03-141-1/+1
| | | | | | index. llvm-svn: 203899
* [yaml2obj][ELF] Remove unused ELFState class field.Simon Atanasyan2014-03-141-7/+4
| | | | llvm-svn: 203898
* [yaml2obj][ELF] Assign name (.shstrtab) to the section holds sections names.Simon Atanasyan2014-03-142-0/+14
| | | | llvm-svn: 203897
* [Mips] Add one more MIPS relocation type constant.Simon Atanasyan2014-03-141-1/+2
| | | | llvm-svn: 203896
* Revert r203883 (which was more of a bandaid) and fix the real underlyingOwen Anderson2014-03-142-1/+3
| | | | | | | | issue in that the new MachineRegisterInfo bundle iterators didn't dereference to the START of the bundle, while the old skipBundle() method did. llvm-svn: 203890
* static link polly into toolsSebastian Pop2014-03-148-6/+54
| | | | llvm-svn: 203886
* Fix issue with r203865. The old behaviour would get a MachineOperand then ↵Pete Cooper2014-03-141-1/+1
| | | | | | find the MI for the bundle the MI was in. The new behaviour was failing to get the parent bundle and instead just used the MI from the MachineOperand llvm-svn: 203883
* Reverted r203879.Galina Kistanova2014-03-141-1/+1
| | | | llvm-svn: 203880
* Fixed misuse of isascii. Also fixes mingw32 build, see ↵Galina Kistanova2014-03-141-1/+1
| | | | | | http://msdn.microsoft.com/en-us/library/ms235417.aspx llvm-svn: 203879
* Use DW_AT_linkage_name when we're emitting DWARF4 or above.Eric Christopher2014-03-132-18/+19
| | | | llvm-svn: 203867
* Remove the linker_private and linker_private_weak linkages.Rafael Espindola2014-03-1331-168/+38
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | These linkages were introduced some time ago, but it was never very clear what exactly their semantics were or what they should be used for. Some investigation found these uses: * utf-16 strings in clang. * non-unnamed_addr strings produced by the sanitizers. It turns out they were just working around a more fundamental problem. For some sections a MachO linker needs a symbol in order to split the section into atoms, and llvm had no idea that was the case. I fixed that in r201700 and it is now safe to use the private linkage. When the object ends up in a section that requires symbols, llvm will use a 'l' prefix instead of a 'L' prefix and things just work. With that, these linkages were already dead, but there was a potential future user in the objc metadata information. I am still looking at CGObjcMac.cpp, but at this point I am convinced that linker_private and linker_private_weak are not what they need. The objc uses are currently split in * Regular symbols (no '\01' prefix). LLVM already directly provides whatever semantics they need. * Uses of a private name (start with "\01L" or "\01l") and private linkage. We can drop the "\01L" and "\01l" prefixes as soon as llvm agrees with clang on L being ok or not for a given section. I have two patches in code review for this. * Uses of private name and weak linkage. The last case is the one that one could think would fit one of these linkages. That is not the case. The semantics are * the linker will merge these symbol by *name*. * the linker will hide them in the final DSO. Given that the merging is done by name, any of the private (or internal) linkages would be a bad match. They allow llvm to rename the symbols, and that is really not what we want. From the llvm point of view, these objects should really be (linkonce|weak)(_odr)?. For now, just keeping the "\01l" prefix is probably the best for these symbols. If we one day want to have a more direct support in llvm, IMHO what we should add is not a linkage, it is just a hidden_symbol attribute. It would be applicable to multiple linkages. For example, on weak it would produce the current behavior we have for objc metadata. On internal, it would be equivalent to private (and we should then remove private). llvm-svn: 203866
* Phase 2 of the great MachineRegisterInfo cleanup. This time, we're changingOwen Anderson2014-03-1335-150/+255
| | | | | | | | | | operator* on the by-operand iterators to return a MachineOperand& rather than a MachineInstr&. At this point they almost behave like normal iterators! Again, this requires making some existing loops more verbose, but should pave the way for the big range-based for-loop cleanups in the future. llvm-svn: 203865
OpenPOWER on IntegriCloud