- Aug 28, 2012
-
-
Craig Topper authored
llvm-svn: 162740
-
Craig Topper authored
llvm-svn: 162738
-
- Aug 01, 2012
-
-
Chad Rosier authored
llvm-svn: 161122
-
- Jun 07, 2012
-
-
Rafael Espindola authored
Fixes pr13048. llvm-svn: 158158
-
- Jun 01, 2012
-
-
Hans Wennborg authored
This implements codegen support for accesses to thread-local variables using the local-dynamic model, and adds a clean-up pass so that the base address for the TLS block can be re-used between local-dynamic access on an execution path. llvm-svn: 157818
-
- May 18, 2012
-
-
Jim Grosbach authored
Use a dedicated MachO load command to annotate data-in-code regions. This is the same format the linker produces for final executable images, allowing consistency of representation and use of introspection tools for both object and executable files. Data-in-code regions are annotated via ".data_region"/".end_data_region" directive pairs, with an optional region type. data_region_directive := ".data_region" { region_type } region_type := "jt8" | "jt16" | "jt32" | "jta32" end_data_region_directive := ".end_data_region" The previous handling of ARM-style "$d.*" labels was broken and has been removed. Specifically, it didn't handle ARM vs. Thumb mode when marking the end of the section. rdar://11459456 llvm-svn: 157062
-
- May 11, 2012
-
-
Hans Wennborg authored
This fixes a TODO from 2007 :) Previously, LLVM would emit the wrong code here (see the update to test/CodeGen/X86/tls-pie.ll). llvm-svn: 156611
-
- Mar 17, 2012
-
-
Craig Topper authored
Reorder includes in Target backends to following coding standards. Remove some superfluous forward declarations. llvm-svn: 152997
-
- Feb 16, 2012
-
-
Jakob Stoklund Olesen authored
The different calling conventions and call-preserved registers are represented with regmask operands that are added dynamically. llvm-svn: 150708
-
- Feb 11, 2012
-
-
Anton Korobeynikov authored
Patch by Kai Nacke! llvm-svn: 150307
-
- Feb 05, 2012
-
-
Craig Topper authored
llvm-svn: 149809
-
- Jan 19, 2012
-
-
Jakob Stoklund Olesen authored
This is similar to implicit register operands. MC doesn't understand register liveness and call clobbers. llvm-svn: 148437
-
- Jan 13, 2012
-
-
Craig Topper authored
Make X86 instruction selection use 256-bit VPXOR for build_vector of all ones if AVX2 is enabled. This gives the ExeDepsFix pass a chance to choose FP vs int as appropriate. Also use v8i32 as the type for getZeroVector if AVX2 is enabled. This is consistent with SSE2 using prefering v4i32. llvm-svn: 148108
-
- Nov 29, 2011
-
-
Jakob Stoklund Olesen authored
Like V_SET0, these instructions are expanded by ExpandPostRA to xorps / vxorps so they can participate in execution domain swizzling. This also makes the AVX variants redundant. llvm-svn: 145440
-
- Nov 19, 2011
-
-
Craig Topper authored
llvm-svn: 145004
-
- Oct 26, 2011
-
-
Rafael Espindola authored
MORESTACK_RET_RESTORE_R10; which are lowered to a RET and a RET followed by a MOV respectively. Having a fake instruction prevents the verifier from seeing a MachineBasicBlock end with a non-terminator (MOV). It also prevents the rather eccentric case of a MachineBasicBlock ending with RET but having successors nevertheless. Patch by Sanjoy Das. llvm-svn: 143062
-
- Oct 05, 2011
-
-
Owen Anderson authored
Teach the MC to output code/data region marker labels in MachO and ELF modes. These are used by disassemblers to provide better disassembly, particularly on targets like ARM Thumb that like to intermingle data in the TEXT segment. llvm-svn: 141135
-
- Sep 29, 2011
-
-
Jakob Stoklund Olesen authored
This also makes it possible to reduce the number of pseudo instructions and get rid of the encoding information. llvm-svn: 140776
-
- Sep 07, 2011
-
-
Eli Friedman authored
Fix atomic load and store on x86 to pass -verify-machineinstrs (and possibly fix some subtle bugs involving passes which check mayStore()). This isn't exactly ideal, but it is good enough for the moment. llvm-svn: 139245
-
- Jul 26, 2011
-
-
Bruno Cardoso Lopes authored
This also fixes PR10452 llvm-svn: 136004
-
- Jul 15, 2011
-
-
Evan Cheng authored
Rename createAsmInfo to createMCAsmInfo and move registration code to MCTargetDesc to prepare for next round of changes. llvm-svn: 135219
-
- May 20, 2011
-
-
Stuart Hastings authored
rdar://problem/8614450 llvm-svn: 131746
-
- May 19, 2011
-
-
Stuart Hastings authored
llvm-svn: 131654
-
Stuart Hastings authored
pseudos. rdar://problem/8614450 llvm-svn: 131641
-
- Dec 09, 2010
-
-
Nate Begeman authored
llvm-svn: 121415
-
- Nov 28, 2010
-
-
Rafael Espindola authored
llvm-svn: 120263
-
- Nov 15, 2010
-
-
Chris Lattner authored
llvm-svn: 119092
-
- Nov 14, 2010
-
-
Chris Lattner authored
since it is trivial and will be shared between ppc and x86. This substantially simplifies the X86 backend also. llvm-svn: 119089
-
Chris Lattner authored
llvm-svn: 119088
-
- Oct 26, 2010
-
-
Rafael Espindola authored
llvm-svn: 117378
-
- Oct 08, 2010
-
-
Chris Lattner authored
reapply: reimplement the second half of the or/add optimization. We should now with no changes. Turns out that one missing "Defs = [EFLAGS]" can upset things a bit. llvm-svn: 116040
-
Chris Lattner authored
"Reimplement (part of) the or -> add optimization. Matching 'or' into 'add'" With a critical fix: the add pseudos clobber EFLAGS. llvm-svn: 116039
-
Daniel Dunbar authored
'add'", which seems to have broken just about everything. llvm-svn: 116033
-
Daniel Dunbar authored
which depends on r116007, which I am about to revert. llvm-svn: 116031
-
Chris Lattner authored
only end up emitting LEA instead of OR. If we aren't able to promote something into an LEA, we should never be emitting it as an ADD. Add some testcases that we emit "or" in cases where we used to produce an "add". llvm-svn: 116026
-
Chris Lattner authored
is general goodness because it allows ORs to be converted to LEA to avoid inserting copies. However, this is bad because it makes the generated .s file less obvious and gives valgrind heartburn (tons of false positives in bitfield code). While the general fix should be in valgrind, we can at least try to avoid emitting ADD instructions that *don't* get promoted to LEA. This is more work because it requires introducing pseudo instructions to represents "add that knows the bits are disjoint", but hey, people really love valgrind. This fixes this testcase: https://bugs.kde.org/show_bug.cgi?id=242137#c20 the add r/i cases are coming next. llvm-svn: 116007
-
- Oct 01, 2010
-
-
Dale Johannesen authored
The x86_mmx type is used for MMX intrinsics, parameters and return values where these use MMX registers, and is also supported in load, store, and bitcast. Only the above operations generate MMX instructions, and optimizations do not operate on or produce MMX intrinsics. MMX-sized vectors <2 x i32> etc. are lowered to XMM or split into smaller pieces. Optimizations may occur on these forms and the result casted back to x86_mmx, provided the result feeds into a previous existing x86_mmx operation. The point of all this is prevent optimizations from introducing MMX operations, which is unsafe due to the EMMS problem. llvm-svn: 115243
-
- Sep 08, 2010
-
-
Dale Johannesen authored
llvm-svn: 113409
-
- Aug 17, 2010
-
-
Anton Korobeynikov authored
- Do not clobber al during variadic calls, this is AMD64 ABI-only feature - Emit wincall64, where necessary Patch by Cameron Esfahani! llvm-svn: 111289
-
- Aug 16, 2010
-
-
Eli Friedman authored
llvm-svn: 111182
-