- Apr 02, 2013
-
-
Hal Finkel authored
Thanks to Bill Schmidt for finding this in review of r178480. llvm-svn: 178521
-
Andrew Trick authored
Buffered means a later divide may be executed out-of-order while a prior divide is sitting (buffered) in a reservation station. You can tell it's not pipelined, because operations that use it reserve it for more than one cycle: def : WriteRes<WriteIDiv, [HWPort0, HWDivider]> { let Latency = 25; let ResourceCycles = [1, 10]; } We don't currently distinguish between an unpipeline operation and one that is split into multiple micro-ops requiring the same unit. Except that the later may have NumMicroOps > 1 if they also consume issue/dispatch resources. llvm-svn: 178519
-
Chris Lattner authored
to be correct. No functionality or behavior change. llvm-svn: 178511
-
NAKAMURA Takumi authored
llvm-svn: 178508
-
- Apr 01, 2013
-
-
Jack Carter authored
Revision 177141 caused a regression in all but mips64 little endian. That is because none of the other Mips targets had test cases checking the contents of the .eh_frame section. This patch fixes both the llvm code and adds an assembler test case to include the current 4 flavors. The test cases unfortunately rely on llvm-objdump. A preferable method would be to use a pretty printer output such as what readelf -wf <elf_file> would give. I also changed the name of the test case to correct a typo. llvm-svn: 178506
-
Vincent Lejeune authored
llvm-svn: 178505
-
Vincent Lejeune authored
llvm-svn: 178504
-
Vincent Lejeune authored
llvm-svn: 178503
-
Eli Bendersky authored
llvm-svn: 178492
-
Hal Finkel authored
llvm-svn: 178489
-
Hal Finkel authored
llvm-svn: 178486
-
Shuxin Yang authored
llvm-svn: 178484
-
Arnold Schwaighofer authored
We would also like to merge sequences that involve a variable index like in the example below. int index = *idx++ int i0 = c[index+0]; int i1 = c[index+1]; b[0] = i0; b[1] = i1; By extending the parsing of the base pointer to handle dags that contain a base, index, and offset we can handle examples like the one above. The dag for the code above will look something like: (load (i64 add (i64 copyfromreg %c) (i64 signextend (i8 load %index)))) (load (i64 add (i64 copyfromreg %c) (i64 signextend (i32 add (i32 signextend (i8 load %index)) (i32 1))))) The code that parses the tree ignores the intermediate sign extensions. However, if there is a sign extension it needs to be on all indexes. (load (i64 add (i64 copyfromreg %c) (i64 signextend (add (i8 load %index) (i8 1)))) vs (load (i64 add (i64 copyfromreg %c) (i64 signextend (i32 add (i32 signextend (i8 load %index)) (i32 1))))) radar://13536387 llvm-svn: 178483
-
Hal Finkel authored
The P7 and A2 have additional floating-point conversion instructions which allow a direct two-instruction sequence (plus load/store) to convert from all combinations (signed/unsigned i32/i64) <--> (float/double) (on previous cores, only some combinations were directly available). llvm-svn: 178480
-
Hal Finkel authored
Code improvement suggested by Jakob (in review of r178450). No functionality change intended. llvm-svn: 178473
-
Hal Finkel authored
llvm-svn: 178472
-
Hal Finkel authored
The popcntw instruction is available whenever the popcntd instruction is available, and performs a separate popcnt on the lower and upper 32-bits. Ignoring the high-order count, this can be used for the 32-bit input case (saving on the explicit zero extension otherwise required to use popcntd). llvm-svn: 178470
-
Nadav Rotem authored
Patch by: Veselov, Yuri <Yuri.Veselov@intel.com> llvm-svn: 178469
-
Hal Finkel authored
PPCISD::STFIWX is really a memory opcode, and so it should come after FIRST_TARGET_MEMORY_OPCODE, and we should use DAG.getMemIntrinsicNode to create nodes using it. No functionality change intended (although there could be optimization benefits from preserving the MMO information). llvm-svn: 178468
-
Duncan Sands authored
llvm-svn: 178462
-
Arnold Schwaighofer authored
Reapply r177968: After commit 178074 we can now have undefined scheduler variants. Move the CortexA9 resources into the CortexA9 SchedModel namespace. Define resource mappings under the CortexA9 SchedModel. Define resources and mappings for the SwiftModel. Incooperate Andrew's feedback. llvm-svn: 178460
-
Benjamin Kramer authored
llvm-svn: 178459
-
Joe Abbey authored
llvm-svn: 178454
-
- Mar 31, 2013
-
-
Vincent Lejeune authored
llvm-svn: 178452
-
Duncan Sands authored
been turned off globally. llvm-svn: 178451
-
Hal Finkel authored
ImmToIdxMap should be a DenseMap (not a std::map) because there is no ordering requirement. Also, we don't need a separate list of instructions for noImmForm in eliminateFrameIndex, because this list is essentially the complement of the keys in ImmToIdxMap. No functionality change intended. llvm-svn: 178450
-
Benjamin Kramer authored
A vector sext + sitofp is a lot cheaper than 8 scalar conversions. llvm-svn: 178448
-
Hal Finkel authored
This instruction is available on modern PPC64 CPUs, and is now used to improve the SINT_TO_FP lowering (by eliminating the need for the separate sign extension instruction and decreasing the amount of needed stack space). llvm-svn: 178446
-
Hal Finkel authored
The existing SINT_TO_FP code for i32 -> float/double conversion was disabled because it relied on broken EXTSW_32/STD_32 instruction definitions. The original intent had been to enable these 64-bit instructions to be used on CPUs that support them even in 32-bit mode. Unfortunately, this form of lying to the infrastructure was buggy (as explained in the FIXME comment) and had therefore been disabled. This re-enables this functionality, using regular DAG nodes, but only when compiling in 64-bit mode. The old STD_32/EXTSW_32 definitions (which were dead) are removed. llvm-svn: 178438
-
- Mar 30, 2013
-
-
Benjamin Kramer authored
Fixes the crash reported in PR15608. llvm-svn: 178429
-
Justin Holewinski authored
Summary: This is the beginning of user documentation for the NVPTX back-end. I want to ensure I am integrating this properly into the rest of the LLVM documentation. Differential Revision: http://llvm-reviews.chandlerc.com/D600 llvm-svn: 178428
-
Benjamin Kramer authored
'@SECREL' is what is used by the Microsoft assembler, but GNU as expects '@SECREL32'. With the patch, the MC-generated code works fine in combination with a recent GNU as (2.23.51.20120920 here). Patch by David Nadlinger! Differential Revision: http://llvm-reviews.chandlerc.com/D429 llvm-svn: 178427
-
Sean Silva authored
llvm-svn: 178426
-
Sean Silva authored
Nobody says "the developer's list" or "commits archive"; they always say "llvmdev" or "llvm-commits". It makes sense for our documentation to at least make that association explicitly. llvm-svn: 178425
-
Sean Silva authored
Order them roughly by "which one should a newbie join first". llvm-svn: 178424
-
Sean Silva authored
llvm-svn: 178423
-
Sean Silva authored
llvm-svn: 178422
-
Sean Silva authored
llvm-svn: 178421
-
Benjamin Kramer authored
llvm-svn: 178420
-
Justin Holewinski authored
llvm-svn: 178417
-