summaryrefslogtreecommitdiffstats
path: root/llvm
Commit message (Collapse)AuthorAgeFilesLines
* Mark MachineRegisterInfo's iterator range methods as const.Owen Anderson2014-03-171-9/+12
| | | | llvm-svn: 204067
* Add iterator range definitions for the MachineRegisterInfo iterators.Owen Anderson2014-03-171-0/+77
| | | | llvm-svn: 204066
* [X86] Fix unused variable warning with NDEBUG from r204058Adam Nemet2014-03-171-2/+1
| | | | llvm-svn: 204063
* MC: change runtime check to an assertionSaleem Abdulrasool2014-03-171-1/+2
| | | | | | | | It is unclear how it would be possible to get M to be NULL in normal scenarios. Change this to an assert rather than a runtime check as per dblakie's suggestion. llvm-svn: 204060
* ARM IAS: support .thumb_setSaleem Abdulrasool2014-03-174-2/+261
| | | | | | | | | | | | | | This performs the equivalent of a .set directive in that it creates a symbol which is an alias for another symbol or value which may possibly be yet undefined. This directive also has the added property in that it marks the aliased symbol as being a thumb function entry point, in the same way that the .thumb_func directive does. The current implementation fails one test due to an unrelated issue. Functions within .thumb sections are not marked as thumb_func. The result is that the aliasee function is not valued correctly. llvm-svn: 204059
* [VectorLegalizer/X86] Don't unvectorize fp_to_uint for v8f32->v8i16Adam Nemet2014-03-174-16/+98
| | | | | | | | | | | | | | | | | | | | | | | | | | | Rather than LegalizeAction::Expand, this needs LegalizeAction::Promote to get promoted to fp_to_sint v8f32->v8i32. This is a legal operation on AVX. For that to work properly, we also need to teach the legalizer about the specific promotion required here. The default vector promotion uses bitcasting to a vector type of the same total size. We want to promote the vector element type, effectively widening the operation and then truncating the result. This is analogous to the current logic of how int_to_fp is promoted. The change also factors out some code from the int_to_fp promotion code to ValueType::widenIntegerVectorElementType. This is now shared between int_to_fp and fp_to_int. There is no longer need for the custom lowering of fp_to_sint f32->v8i16 in X86. It can now go through the new target-independent fp_to_*int promotion logic. I also checked that no other target uses Promote for these ops yet, so there shouldn't be any unexpected change in behavior. Fixes <rdar://problem/16202247> llvm-svn: 204058
* R600/SI: Fix implementation of isInlineConstant() used by the verifierTom Stellard2014-03-172-14/+38
| | | | | | | | The type of the immediates should not matter as long as the encoding is equivalent to the encoding of one of the legal inline constants. Tested-by: Michel Dänzer <michel.daenzer@amd.com> llvm-svn: 204056
* R600/SI: Use correct dest register class for V_READFIRSTLANE_B32Tom Stellard2014-03-175-8/+30
| | | | | | | | | | | | This instructions writes to an 32-bit SGPR. This change required adding the 32-bit VCC_LO and VCC_HI registers, because the full VCC register is 64 bits. This fixes verifier errors on several of the indirect addressing piglit tests. Tested-by: Michel Dänzer <michel.daenzer@amd.com> llvm-svn: 204055
* R600/SI: Add generic checks to SIInstrInfo::verifyInstruction()Tom Stellard2014-03-171-0/+41
| | | | | | | Added checks for number of operands and operand register classes. Tested-by: Michel Dänzer <michel.daenzer@amd.com> llvm-svn: 204054
* Consistent use of the noduplicate attribute.Eli Bendersky2014-03-175-6/+12
| | | | | | | | | The "noduplicate" attribute of call instructions is sometimes queried directly and sometimes through the cannotDuplicate() predicate. This patch streamlines all queries to use the cannotDuplicate() predicate. It also adds this predicate to InvokeInst, to mirror what CallInst has. llvm-svn: 204049
* [C++11] Introduce ObjectFile::symbols() to use range-based loops.Alexey Samsonov2014-03-1710-90/+90
| | | | | | | | | | | | Reviewers: rafael Reviewed By: rafael CC: llvm-commits Differential Revision: http://llvm-reviews.chandlerc.com/D3081 llvm-svn: 204031
* llvm/test/MC/MachO/gen-dwarf-cpp.s: Relax an expression to match DOS pat.NAKAMURA Takumi2014-03-171-1/+1
| | | | llvm-svn: 204030
* Consider the base pointer for setting the symbol type.Rafael Espindola2014-03-172-6/+21
| | | | | | | | | | | | | | This is really a consistency fix. Since given a = b we propagate the information, we should propagate it too given a = b + (1 - 1) Fixes pr19145. llvm-svn: 204028
* DebugInfo: Improve reuse of file table entries in asm debug infoDavid Blaikie2014-03-179-29/+45
| | | | | | | | | | | | | | | | | The previous deduping strategy was woefully inadequate - it only considered the most recent file used and avoided emitting a duplicate in that case - never considering the a/b/a scenario. It was also lacking when it came to directory paths as the previous filename would never match the current if the filename had been split into file and directory components. This change builds caching functionality into the line table at the lowest level in an optional form (a file number of 0 indicates that one should be chosen and returned) and will eventually be reused by the normal source level debugging DWARF emission. llvm-svn: 204027
* Test caseDavid Blaikie2014-03-171-0/+6
| | | | llvm-svn: 204026
* Deleted copy-constructor/copy-assignment broke a buildbot. Removing while ILang Hames2014-03-171-3/+3
| | | | | | investigate. llvm-svn: 204025
* llvm-readobj: Print referred symbol name for CLR token definitionNico Rieck2014-03-172-2/+11
| | | | llvm-svn: 204024
* llvm-readobj: Add test for COFF auxiliary symbols as used by C++/CLINico Rieck2014-03-174-1/+47
| | | | llvm-svn: 204023
* Rename PBQP RegAllocSolver local variables to conform to LLVM coding style.Lang Hames2014-03-171-81/+81
| | | | | | No functional change. llvm-svn: 204022
* [X86] New and improved VZeroUpperInserter optimization.Lang Hames2014-03-173-175/+191
| | | | | | | | | | | | | | | | | - Adds support for inserting vzerouppers before tail-calls. This is enabled implicitly by having MachineInstr::copyImplicitOps preserve regmask operands, which allows VZeroUpperInserter to see where tail-calls use vector registers. - Fixes a bug that caused the previous version of this optimization to miss some vzeroupper insertion points in loops. (Loops-with-vector-code that followed loops-without-vector-code were mistakenly overlooked by the previous version). - New algorithm never revisits instructions. Fixes <rdar://problem/16228798> llvm-svn: 204021
* Untabify.NAKAMURA Takumi2014-03-163-9/+8
| | | | llvm-svn: 204020
* Add FIXMEs to use DIScopeRef instead of DIScope for LTO type uniqueing.Manman Ren2014-03-161-0/+2
| | | | llvm-svn: 204019
* [CMake][cygming] Disable --out-implib from executables.NAKAMURA Takumi2014-03-161-0/+9
| | | | | | It doesn't make sense even with --export-all-symbols. llvm-svn: 204017
* Remove named Twine.David Blaikie2014-03-161-4/+2
| | | | | | | While technically correct, we generally disallow any instance of named Twines due to their subtlety. llvm-svn: 204016
* Use a fixed subtarget for test so atom scheduling can't change the addresses ↵Benjamin Kramer2014-03-151-1/+1
| | | | | | this test relies on. llvm-svn: 204014
* Remove some dead assignements found by scan-buildArnaud A. de Grandmaison2014-03-155-11/+3
| | | | llvm-svn: 204013
* Make some assertions on constant expressions static.Benjamin Kramer2014-03-156-15/+20
| | | | llvm-svn: 204011
* PointerIntPair: Avoid an (academic) case of undefined behavior in the ↵Benjamin Kramer2014-03-151-5/+5
| | | | | | | | | | | DenseMapInfo specialization. If we use a pair with an enum type this could create values outside of the enum range. Avoid it by creating the bit pattern directly. While there turn a dynamic assert into a static one. No functionality change. llvm-svn: 204010
* LSR: Compress a pair (and get rid of the DenseMapInfo for it).Benjamin Kramer2014-03-151-33/+6
| | | | | | | Also convert a horrible hash function to use our hashing infrastructure. No functionality change. llvm-svn: 204008
* Replace ValueTypes.h with MachineValueType.h if possible.Patrik Hagglund2014-03-158-7/+9
| | | | | | | | | Utilize the previous move of MVT to a separate header for all trivial cases (that don't need any further restructuring). Reviewed By: Tim Northover llvm-svn: 204003
* Support: Make error_category's constructor publicJustin Bogner2014-03-154-7/+7
| | | | | | | | Since our error_category is based on the std one, we should have the same visibility for the constructor. This also allows us to avoid using the _do_message implementation detail in our own categories. llvm-svn: 203998
* llvm/test/Transforms/SampleProfile/syntax.ll: Suppress checking the message ↵NAKAMURA Takumi2014-03-151-1/+1
| | | | | | catalog in ENOENT. It is locale-dependent on Windows. llvm-svn: 203997
* 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
OpenPOWER on IntegriCloud