| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
llvm-svn: 78559
|
| |
|
|
| |
llvm-svn: 78558
|
| |
|
|
| |
llvm-svn: 78557
|
| |
|
|
| |
llvm-svn: 78556
|
| |
|
|
| |
llvm-svn: 78553
|
| |
|
|
|
|
| |
add support for PtrToInt, Add, Mul.
llvm-svn: 78552
|
| |
|
|
| |
llvm-svn: 78550
|
| |
|
|
| |
llvm-svn: 78549
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
instead of syntactically as a string. This means that it keeps track of the
segment, section, flags, etc directly and asmprints them in the right format.
This also includes parsing and validation support for llvm-mc and
"attribute(section)", so we should now start getting errors about invalid
section attributes from the compiler instead of the assembler on darwin.
Still todo:
1) Uniquing of darwin mcsections
2) Move all the Darwin stuff out to MCSectionMachO.[cpp|h]
3) there are a few FIXMEs, for example what is the syntax to get the
S_GB_ZEROFILL segment type?
llvm-svn: 78547
|
| |
|
|
|
|
| |
Noticed by Yonggang Luo!
llvm-svn: 78543
|
| |
|
|
| |
llvm-svn: 78540
|
| |
|
|
| |
llvm-svn: 78534
|
| |
|
|
|
|
| |
- We can now discriminate SUB32ri8 from SUB32ri, for example.
llvm-svn: 78530
|
| |
|
|
|
|
| |
classes for X86.
llvm-svn: 78524
|
| |
|
|
|
|
| |
-2 FIXMEs.
llvm-svn: 78523
|
| |
|
|
|
|
|
|
| |
classes.
This totally optimizes PIC16 sections by not having an 'isdirective' bit anymore!! ;-)
llvm-svn: 78517
|
| |
|
|
|
|
| |
'no_hash' modifier. Hopefully this will make Daniel happy :)
llvm-svn: 78514
|
| |
|
|
| |
llvm-svn: 78511
|
| |
|
|
|
|
|
|
|
| |
2. Move section switch printing to MCSection virtual method which takes a
TAI. This eliminates textual formatting stuff from TLOF.
3. Eliminate SwitchToSectionDirective, getSectionFlagsAsString, and
TLOFELF::AtIsCommentChar.
llvm-svn: 78510
|
| |
|
|
|
|
|
|
|
| |
bytes for F2 0F 38 and propagate. Add a FIXME for a set
of possibilities which correspond to intrinsics already used.
New test.
llvm-svn: 78508
|
| |
|
|
| |
llvm-svn: 78506
|
| |
|
|
| |
llvm-svn: 78505
|
| |
|
|
|
|
|
| |
Also, redefined MatchRegisterName to just return the register value or a
sentinel, to simplify the generated code.
llvm-svn: 78504
|
| |
|
|
|
|
|
|
| |
--- Reverse-merging r78501 into '.':
U lib/Target/PIC16/PIC16TargetObjectFile.cpp
D lib/Target/PIC16/PIC16Section.h
llvm-svn: 78503
|
| |
|
|
| |
llvm-svn: 78501
|
| |
|
|
|
|
| |
MCSection instances.
llvm-svn: 78500
|
| |
|
|
| |
llvm-svn: 78499
|
| |
|
|
|
|
|
|
| |
A TAI hook is appropriate in this case because this is just an
asm syntax issue, not a semantic difference. TLOF should model
the semantics of the section.
llvm-svn: 78498
|
| |
|
|
|
|
|
|
| |
Blackfin supports and/or/xor on i32 but not on i16. Teach
DAGCombiner::SimplifyBinOpWithSameOpcodeHands to not produce illegal nodes
after legalize ops.
llvm-svn: 78497
|
| |
|
|
| |
llvm-svn: 78496
|
| |
|
|
|
|
|
| |
give the impls an object-file-specific name. In the future
they can take different arguments etc.
llvm-svn: 78495
|
| |
|
|
|
|
| |
now that they create *all* the sections.
llvm-svn: 78494
|
| |
|
|
|
|
| |
- Part of optimal static profiling patch sequence by Andreas Neustifter.
llvm-svn: 78485
|
| |
|
|
|
|
| |
- Part of optimal static profiling patch sequence by Andreas Neustifter.
llvm-svn: 78484
|
| |
|
|
|
|
|
|
|
| |
instructions,
since they are in 64 bit mode with i64immSExt32 imms. JIT is not affected since
it handles both word absolute relocations in the same way
llvm-svn: 78479
|
| |
|
|
|
|
|
|
|
|
|
|
| |
- Part of optimal static profiling patch sequence by Andreas Neustifter.
- Store edge, block, and function information separately for each functions
(instead of in one giant map).
- Return frequencies as double instead of int, and use a sentinel value for
missing information.
llvm-svn: 78477
|
| |
|
|
|
|
|
|
|
|
|
| |
Handle large integers, x86_fp80, ConstantAggregateZero, and two more ConstantExpr:
GetElementPtr and IntToPtr
Set SHF_MERGE bit for mergeable strings
Avoid zero initialized strings to be classified as a bss symbol
Don't allow common symbols to be classified as STB_WEAK
Add a constant to be used as a global value offset in data relocations
llvm-svn: 78476
|
| |
|
|
| |
llvm-svn: 78475
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Also don't dereference old pointers after they have been deleted causing
random crashes when enabling the machine code verifier.
Ahem...
I have not included a test case for the crash. It hapened when enabling the
verifier on CodeGen/X86/2009-08-06-branchfolder-crash.ll.
The crash depends on an MBB being allocated at the same address as a
previously deleted MBB. I don't think that can be reproduced reliably.
llvm-svn: 78472
|
| |
|
|
|
|
| |
Did anyone tests v4f32 ever?
llvm-svn: 78470
|
| |
|
|
| |
llvm-svn: 78469
|
| |
|
|
| |
llvm-svn: 78468
|
| |
|
|
|
|
|
|
|
| |
* Cleaner handling of <undef>.
* <def> takes precedence over <def,dead>.
* Implement the OK-to-redefine-a-register-that-was-
live-in-but-has-not-been-used-before rule.
llvm-svn: 78467
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
mistaken commit r77904.
Now there is no special treatment of instructions that redefine part of a
super-register. Instead, the super-register is marked with <imp-use,kill> and
<imp-def>. For instance, from LowerSubregs on ARM:
subreg: CONVERTING: %Q1<def> = INSERT_SUBREG %Q1<undef>, %D1<kill>, 5
subreg: %D2<def> = FCPYD %D1<kill>, 14, %reg0, %Q1<imp-def>
subreg: CONVERTING: %Q1<def> = INSERT_SUBREG %Q1, %D0<kill>, 6
subreg: %D3<def> = FCPYD %D0<kill>, 14, %reg0, %Q1<imp-use,kill>, %Q1<imp-def>
llvm-svn: 78466
|
| |
|
|
|
|
|
|
|
|
|
| |
Verify that early clobber registers and their aliases are not used.
All changes to RegsAvailable are now done as a transaction so the order of
operands makes no difference.
The included test case is from PR4686. It has behaviour that was dependent on the order of operands.
llvm-svn: 78465
|
| |
|
|
| |
llvm-svn: 78464
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
- This doesn't actually improve the algorithm (its still linear), but the
generated (match) code is now fairly compact and table driven. Still need a
generic string matcher.
- The table still needs to be compressed, this is quite simple to do and should
shrink it to under 16k.
- This also simplifies and restructures the code to make the match classes more
explicit, in anticipation of resolving ambiguities.
llvm-svn: 78461
|
| |
|
|
|
|
| |
so I generalized the class for VTRN in the .td file to handle all 3 of them.
llvm-svn: 78460
|
| |
|
|
|
|
|
|
| |
directly from the intrinsics produced by the frontend. If it is more
convenient to have a custom DAG node for using these to implement shuffles,
we can add that later.
llvm-svn: 78459
|
| |
|
|
| |
llvm-svn: 78456
|