summaryrefslogtreecommitdiffstats
path: root/llvm
Commit message (Collapse)AuthorAgeFilesLines
...
* Use attribute query methods.Bill Wendling2012-10-041-3/+3
| | | | llvm-svn: 165210
* Use method to query for attributes.Bill Wendling2012-10-043-11/+11
| | | | llvm-svn: 165209
* Add method to query for 'NoAlias' attribute on call/invoke instructions.Bill Wendling2012-10-044-1/+22
| | | | llvm-svn: 165208
* Use method to query for attributes.Bill Wendling2012-10-041-1/+1
| | | | llvm-svn: 165207
* Query for attributes via the correct method call.Bill Wendling2012-10-041-2/+2
| | | | llvm-svn: 165206
* Use new accessor methods to query for attributes.Bill Wendling2012-10-044-4/+4
| | | | llvm-svn: 165205
* [tsan] add 3 internal flags for fine-grain control of what is instrumented ↵Kostya Serebryany2012-10-041-7/+18
| | | | | | and what is not. llvm-svn: 165204
* Remove template from function that is only used with one type after r165092.Craig Topper2012-10-041-4/+5
| | | | llvm-svn: 165203
* Fix reg mask slot test, and preserve LiveIntervals and VirtRegMap in the PBQPLang Hames2012-10-041-1/+3
| | | | | | allocator. Fixes PR13945. llvm-svn: 165201
* docs: Fix typo on front pageSean Silva2012-10-041-1/+1
| | | | llvm-svn: 165200
* Implement methods that enable expansion of load immediate Jack Carter2012-10-044-28/+129
| | | | | | | | | | | | | | | | | | | | | | | | macro instruction (li) in the assembler. We have identified three possible expansions depending on the size of immediate operand: 1) for 0 ≤ j ≤ 65535. li d,j => ori d,$zero,j 2) for −32768 ≤ j < 0. li d,j => addiu d,$zero,j 3) for any other value of j that is representable as a 32-bit integer. li d,j => lui d,hi16(j) ori d,d,lo16(j) All of the above have been implemented in ths patch. Contributer: Vladimir Medic llvm-svn: 165199
* docs: Sphinxify GoldPlugin document.Sean Silva2012-10-044-228/+190
| | | | llvm-svn: 165198
* This patch is a partial implementation of mips .set assembler directive. ↵Jack Carter2012-10-042-44/+245
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Directive is defined as follows: .set option The patch implements following options at - lets the assembler use the $at register for macros, but generates warnings if the source program uses $at noat - let source programs use $at without issuingwarnings. noreorder - prevents the assembler from reordering machine language instructions. nomacro - causes the assembler to print a warning whenever an assembler operation generates more than one machine language instruction. macro - lets the assembler generate multiple machine instructions from a single assembler instruction reorder - lets the assembler reorder machine language instructions to improve performance The above variants are parsed and their boolean values set or unset. The code to actually use them will come later. Following options are not implemented yet: nomips16 nomicromips move nomove Contributer: Vladimir Medic llvm-svn: 165194
* tblgen: Whitespace and 80-col cleanup.Sean Silva2012-10-041-11/+12
| | | | llvm-svn: 165190
* Make sure 'prefix-clang++' is aliased to 'prefix-clang', not 'clang'.Jordan Rose2012-10-041-2/+2
| | | | | | | | | | | | | When aliasing tools, rather than using the base TOOLEXENAME, we should instead use the built tool's basename (for 'make') or the installed tool's basename (for 'make install'). This should not cause any changes for anyone building unprefixed 'clang' and 'clang++' tools. Patch by Rick Foos! llvm-svn: 165189
* Enable -schedmodel, but prefer itineraries until we have more benchmark data.Andrew Trick2012-10-041-52/+51
| | | | llvm-svn: 165188
* Fix PR13967.Jakub Staszak2012-10-032-1/+30
| | | | llvm-svn: 165187
* Add an explicit -object_path_lto flag during linking with a uniquified temporaryBill Wendling2012-10-032-1/+15
| | | | | | file name if building Apple-style. llvm-svn: 165185
* Clean up tailing whitespacesMichael Liao2012-10-031-2/+2
| | | | llvm-svn: 165182
* Added instregex support to TableGen subtarget emitter.Andrew Trick2012-10-034-12/+95
| | | | | | | | This allows the processor-specific machine model to override selected base opcodes without any fanciness. e.g. InstRW<[CoreXWriteVANDP], (instregex "VANDP")>. llvm-svn: 165180
* TableGen subtarget emitter, nearly first class support for SchedAlias.Andrew Trick2012-10-033-130/+229
| | | | | | | | | A processor can now arbitrarily alias one SchedWrite onto another. Only the SchedAlias definition need be within the processor model. The aliased SchedWrite may be a SchedVariant, WriteSequence, or transitively refer to another alias. llvm-svn: 165179
* Cleanup TableGen subtarget emitter.Andrew Trick2012-10-032-6/+7
| | | | llvm-svn: 165178
* [ms-inline asm] Default to the 'm' constraint. This matches the behavior of theChad Rosier2012-10-031-3/+3
| | | | | | MSVC compiler. llvm-svn: 165174
* [ms-inline asm] Add support in the X86AsmPrinter for printing memory referencesChad Rosier2012-10-033-0/+70
| | | | | | | | | | | in the Intel syntax. The MC layer supports emitting in the Intel syntax, but this would require the inline assembly MachineInstr to be lowered to an MCInst before emission. This is potential future work, but for now emitting directly from the MachineInstr suffices. llvm-svn: 165173
* This patch moves from using a hard coded number (4) Jack Carter2012-10-031-2/+4
| | | | | | | | | | | | | for the number of bytes in a particular instruction to using const MCInstrDesc &Desc = MCII.get(TmpInst.getOpcode()); Desc.getSize() This is necessary with the advent of 16 bit instructions with mips16 and micromips. It is also puts Mips in compliance with the other targets for getting instruction size. llvm-svn: 165171
* tblgen: Remove last traces of old TableGenMain API.Sean Silva2012-10-035-76/+1
| | | | llvm-svn: 165168
* tblgen: Migrate llvm-tblgen to new TableGenMain API.Sean Silva2012-10-031-82/+77
| | | | llvm-svn: 165166
* tblgen: Put new TableGenMain API in place.Sean Silva2012-10-032-0/+27
| | | | | | | | In order to avoid rev-lock with Clang when moving to the new API, also preserve the current API temporarily and insert a shim to implement the new API in terms of the old. llvm-svn: 165165
* Add function to return return attributes.Bill Wendling2012-10-031-0/+6
| | | | llvm-svn: 165164
* Update to use the predicate methods to query if an attribute exists.Bill Wendling2012-10-031-17/+17
| | | | llvm-svn: 165163
* Fix a cycle in the DAG. In this code we replace multiple loads with a single ↵Nadav Rotem2012-10-032-7/+50
| | | | | | | | | | | load and multiple stores with a single load. We create the wide loads and stores (and their chains) before we remove the scalar loads and stores and fix the DAG chain. We attempted to merge loads with a different chain. When that happened, the assumption that it is safe to RAUW broke and a cycle was introduced. llvm-svn: 165148
* Use unsigned long long instead of uin64_t for OS where that matters.Nick Kledzik2012-10-031-1/+1
| | | | llvm-svn: 165147
* Typos.Chad Rosier2012-10-032-5/+4
| | | | llvm-svn: 165141
* Don't call getAsUnsignedInteger directly, it fails to compile if uint64_t is ↵Benjamin Kramer2012-10-031-1/+5
| | | | | | | | not "unsigned long long". while there add more test cases. llvm-svn: 165140
* Add getAsUnsignedInteger test case that checks that known bad values are ↵Nick Kledzik2012-10-031-0/+19
| | | | | | rejected llvm-svn: 165136
* No need to call functions which do the same thing as the default.Bill Wendling2012-10-031-4/+0
| | | | llvm-svn: 165135
* Remove assert that's too restrictive.Bill Wendling2012-10-031-1/+4
| | | | llvm-svn: 165134
* Add methods which query for the specific attribute instead of using theBill Wendling2012-10-035-16/+148
| | | | | | enums. This allows for better encapsulation of the Attributes class. llvm-svn: 165132
* Implement .rel relocation for R_ARM_ABS32 in MCJIT.Tim Northover2012-10-032-2/+26
| | | | | | Patch by Amara Emerson. llvm-svn: 165128
* This Patch corrects a problem whereby the optimization to use a faster dividePreston Gurd2012-10-031-5/+15
| | | | | | | | | | | | | | instruction (for Intel Atom) was not being done by Clang, because the type context used by Clang is not the default context. It fixes the problem by getting the global context types for each div/rem instruction in order to compare them against the types in the BypassTypeMap. Tests for this will be done as a separate patch to Clang. Patch by Tyler Nowicki. llvm-svn: 165126
* A DAGCombine optimization for mergeing consecutive stores to memory. The ↵Nadav Rotem2012-10-032-0/+668
| | | | | | | | | | | | | | | | | | | | | optimization is not profitable in many cases because modern processors perform multiple stores in parallel and merging stores prior to merging requires extra work. We handle two main cases: 1. Store of multiple consecutive constants: q->a = 3; q->4 = 5; In this case we store a single legal wide integer. 2. Store of multiple consecutive loads: int a = p->a; int b = p->b; q->a = a; q->b = b; In this case we load/store either ilegal vector registers or legal wide integer registers. llvm-svn: 165125
* Set up MCSchedModel after detecting the CPU type in X86SubTarget.Preston Gurd2012-10-031-0/+4
| | | | | | | | | Corrects a problem whereby MCSchedModel was not being set up when the CPU type was auto-detected. Patch by Andy Zhang. llvm-svn: 165122
* tsan: update the test for new atomic enumsDmitry Vyukov2012-10-031-80/+80
| | | | llvm-svn: 165109
* tsan: update the test for new atomic enumsDmitry Vyukov2012-10-031-40/+40
| | | | llvm-svn: 165108
* tsan: prepare for migration to new memory_order enum values (ABI compatible)Dmitry Vyukov2012-10-031-1/+2
| | | | llvm-svn: 165107
* Fixed a bug in the ExecutionDependencyFix pass that caused dependencies to ↵Silviu Baranga2012-10-032-3/+28
| | | | | | not propagate through implicit defs. llvm-svn: 165102
* Fix an issue where we failed to adjust the alignment constraint onChandler Carruth2012-10-032-0/+37
| | | | | | | | a memcpy to reflect that '0' has a different meaning when applied to a load or store. Now we correctly use underaligned loads and stores for the test case added. llvm-svn: 165101
* Try to use a better set of abstractions for computing the alignmentChandler Carruth2012-10-032-20/+87
| | | | | | | | | | | | | | | | | | | | necessary during rewriting. As part of this, fix a real think-o here where we might have left off an alignment specification when the address is in fact underaligned. I haven't come up with any way to trigger this, as there is always some other factor that reduces the alignment, but it certainly might have been an observable bug in some way I can't think of. This also slightly changes the strategy for placing explicit alignments on loads and stores to only do so when the alignment does not match that required by the ABI. This causes a few redundant alignments to go away from test cases. I've also added a couple of tests that really push on the alignment that we end up with on loads and stores. More to come here as I try to fix an underlying bug I have conjectured and produced test cases for, although it's not clear if this bug is the one currently hitting dragonegg's gcc47 bootstrap. llvm-svn: 165100
* Revert 165051-165049 while looking into the foreach.m failure inEric Christopher2012-10-035-95/+27
| | | | | | more detail. llvm-svn: 165099
* Fix doxygen comment to match function name.Craig Topper2012-10-031-1/+1
| | | | llvm-svn: 165094
OpenPOWER on IntegriCloud